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 somente com projetos que usam agentes privados Jitterbit.

Pré-requisitos

Esses arquivos JAR devem ser baixados para 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

Um .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 o RabbitMQ com JMS:

  1. Navegue até Jitterbit Agente > Connectors > JMS > Providers. No diretório Providers, crie uma nova pasta chamada RabbitMQ. Adicione a esta pasta o .bindings arquivo com o atualizado HOST_NAME e os arquivos JAR listados em Pré-requisitos.

  2. Navegue até <JITTERBIT_HOME>/Connectors/JMS, substituindo <JITTERBIT_HOME> com seu diretório raiz de agente privado. Seu diretório raiz de agente privado geralmente está em um desses 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 exclusivo. Este 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 de classe totalmente qualificado 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 em passo 1.
    <factoryName> O nome da fábrica de conexão que foi configurada no provedor de serviços.
    <pathOfProviderJars> O caminho absoluto do diretório onde os arquivos JAR do provedor são colocados em etapa 1.

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

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

  4. Reinicie o agente:

  5. Quando 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 Criação de endpoints do conector JMS.