Ir para o conteúdo

Habilitar Provedor RabbitMQ com JMS

Introdução

Por padrão, o Harmony JMS Connector estabelece acesso ao JMS usando ActiveMQ. Provedores JMS adicionais também podem ser usados. Esta página resume como estabelecer acesso ao JMS usando RabbitMQ.

Nota

Um provedor RabbitMQ pode ser usado apenas com projetos que usam Harmony Agentes Privados.

Pré-requisitos

Esses arquivos JAR devem ser baixados em seu Agente Privado conforme descrito abaixo:

  • 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 O arquivo deve ser criado com estas definições:

.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

Habilitando RabbitMQ com JMS

Siga estas etapas para habilitar RabbitMQ com JMS:

  1. Navegue até Agente Jitterbit > Conectores\ > JMS > Provedores. No diretório Providers, crie uma nova pasta chamada RabbitMQ. Para esta pasta adicione o .bindings arquivo com a atualização HOST_NAME e os arquivos JAR listados em Pré-requisitos.

  2. Navegue até <JITTERBIT_HOME>/Connectors/JMS, substituindo <JITTERBIT_HOME> com o diretório raiz do Agente Privado. O diretório raiz do Agente Privado geralmente está em um destes locais padrão:

    • Windows: C:\Program Files\Jitterbit Agent
    • Linux: /opt/jitterbit
  3. Adicione um novo <Provider> elemento para JMS_ProviderInfo_User.conf com estas entradas:

    Campo Descrição
    <name> O nome do provedor. O nome deve ser único. Esse nome aparecerá no parâmetro de conexão Provedor JMS ao configurar um endpoint JMS.
    <java.naming.factory.initial> O valor desta propriedade JNDI deve ser o nome completo da classe de fábrica que criará um contexto inicial.
    <java.naming.provider.url> O valor desta propriedade JNDI deve ser o caminho do RabbitMQ pasta criada na etapa 1.
    <factoryName> O nome do connection factory que foi configurado no provedor de serviços.
    <pathOfProviderJars> O caminho absoluto do diretório onde os arquivos JAR do provedor são colocados na etapa 1.

    Estes são exemplos do <Provider> elemento a ser adicionado 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

    Essas entradas devem ser colocadas na parte inferior JMS_ProviderInfo_User.conf entre a flecha --> e </Providers>.

  4. Reinicie o agente:

  5. Assim que o agente estiver em execução, você poderá criar um novo endpoint JMS com a opção de selecionar RabbitMQ como provedor:

    anexo

Para obter mais informações sobre como criar endpoints JMS, consulte Conector JMS Criando Endpoints.