Saltar al contenido

Habilitar el proveedor RabbitMQ con JMS

Introducción

De forma predeterminada, el conector JMS de Harmony establece acceso a JMS mediante ActiveMQ. También se pueden utilizar proveedores JMS adicionales. Esta página resume cómo establecer acceso a JMS mediante RabbitMQ.

Nota

Un proveedor RabbitMQ solo se puede usar con proyectos que usan agentes privados Jitterbit.

Prerrequisitos

Estos archivos JAR deben descargarse en su agente privado como se describe a continuación:

  • amqp-client-5.8.0.jar- fscontext-4.6-b01.jar- geronimo-jms_1.1_spec-1.1.1.jar- rabbitmq-jms-2.1.0.jar- slf4j-api-1.7.30.jar

A .bindings el archivo debe crearse con estas definiciones:

.bindings
# Define the Connection Factory object
ConnectionFactory/ClassName=javax.jms.ConnectionFactory
ConnectionFactory/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory
ConnectionFactory/RefAddr/0/Content=jms/ConnectionFactory
ConnectionFactory/RefAddr/0/Type=name
ConnectionFactory/RefAddr/0/Encoding=String
ConnectionFactory/RefAddr/1/Content=javax.jms.ConnectionFactory
ConnectionFactory/RefAddr/1/Type=type
ConnectionFactory/RefAddr/1/Encoding=String
ConnectionFactory/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory
ConnectionFactory/RefAddr/2/Type=factory
ConnectionFactory/RefAddr/2/Encoding=String

# Define the location of the broker, likely localhost, and the VirtualHost these resources will reside in
# Replace HOST_NAME with the host name for RabbitMQ
ConnectionFactory/RefAddr/3/Content=HOST_NAME
ConnectionFactory/RefAddr/3/Type=host
ConnectionFactory/RefAddr/3/Encoding=String
ConnectionFactory/RefAddr/4/Content=regression
ConnectionFactory/RefAddr/4/Type=virtualHost
ConnectionFactory/RefAddr/4/Encoding=String

# Define an example Queue
queue1/ClassName=javax.jms.Queue
queue1/FactoryName=com.rabbitmq.jms.admin.RMQObjectFactory
queue1/RefAddr/0/Content=jms/Queue
queue1/RefAddr/0/Type=name
queue1/RefAddr/0/Encoding=String
queue1/RefAddr/1/Content=javax.jms.Queue
queue1/RefAddr/1/Type=type
queue1/RefAddr/1/Encoding=String
queue1/RefAddr/2/Content=com.rabbitmq.jms.admin.RMQObjectFactory
queue1/RefAddr/2/Type=factory
queue1/RefAddr/2/Encoding=String
queue1/RefAddr/3/Content=queue1
queue1/RefAddr/3/Type=destinationName
queue1/RefAddr/3/Encoding=String

Habilitación de RabbitMQ con JMS

Siga estos pasos para habilitar RabbitMQ con JMS:

  1. Vaya a Jitterbit Agente > Connectors > JMS > Providers. En el directorio Providers, cree una nueva carpeta denominada RabbitMQ a esta carpeta agregue el .bindings archivo con la actualización HOST_NAME y los archivos JAR enumerados en Requisitos previos.

  2. Navega hasta <JITTERBIT_HOME>/Connectors/JMS, reemplazando <JITTERBIT_HOME> con el directorio raíz de su agente privado. El directorio raíz de su agente privado suele estar en una de estas ubicaciones predeterminadas:

    • Windows: C:\Program Files\Jitterbit Agent
    • Linux: /opt/jitterbit
  3. Agregar un nuevo <Provider> elemento a JMS_ProviderInfo_User.conf con estas entradas:

    Campo Descripción
    <name> El nombre del proveedor. El nombre debe ser único. Este nombre aparecerá en el parámetro de conexión Proveedor JMS al configurar un extremo JMS.
    <java.naming.factory.initial> El valor de esta propiedad JNDI debe ser el nombre de clase completo de la clase de fábrica que creará un contexto inicial.
    <java.naming.provider.url> El valor de esta propiedad JNDI debe ser la ruta de la RabbitMQ carpeta creada en el paso 1.
    <factoryName> El nombre de la fábrica de conexión que se ha configurado en el proveedor de servicios.
    <pathOfProviderJars> La ruta absoluta del directorio donde se colocan los archivos JAR del proveedor en paso 1.

    Estos son ejemplos de los <Provider> elemento a añadir a JMS_ProviderInfo_User.conf:

    Windows Example
    <Provider>
    <Name>RabbitMQ</Name>
    <java.naming.factory.initial>com.sun.jndi.fscontext.RefFSContextFactory</java.naming.factory.initial>
    <java.naming.provider.url>C:\Program Files\Jitterbit Agent\Connectors\JMS\Providers\RabbitMQ</java.naming.provider.url>
    <factoryName>ConnectionFactory</factoryName>
    <pathOfProviderJars>C:\Program Files\Jitterbit Agent\Connectors\JMS\Providers\RabbitMQ</pathOfProviderJars>
    </Provider>
    
    Linux Example
    <Provider>
    <Name>RabbitMQ</Name>
    <java.naming.factory.initial>com.sun.jndi.fscontext.RefFSContextFactory</java.naming.factory.initial>
    <java.naming.provider.url>file://localhost/opt/jitterbit/Connectors/JMS/Providers/RabbitMQ</java.naming.provider.url>
    <factoryName>ConnectionFactory</factoryName>
    <pathOfProviderJars>/opt/jitterbit/Connectors/JMS/Providers/RabbitMQ</pathOfProviderJars>
    </Provider>
    

    Nota

    Estas entradas deben colocarse al final de JMS_ProviderInfo_User.conf entre la flecha --> y </Providers>.

  4. Reinicie el agente:

  5. Una vez que el agente esté en ejecución, podrá crear un nuevo extremo JMS con la opción de seleccionar RabbitMQ como proveedor:

    archivo adjunto

Para obtener más información sobre la creación de extremos JMS, consulte Creación de extremos del conector JMS.