iBOLT e Sistemas de Mensageria

Manoel Frederico

A capacidade de interagir com sistemas de filas de mensagens é um dos vários recursos existentes no iBOLT, através de seus componentes especializados para esta tarefa.

 

Nativamente, três são os sistemas suportados:

Microsoft (MSMQ), Java (JMS) e IBM (WebSphereMQ).

Outros sistemas de mensageria podem facilmente ser implementados através do iBOLT SDK.

Neste “post”, vamos focar na integração entre o iBOLT e o JMS.

Como quase tudo em Java, existem várias opções e formas diferentes de se fazer a mesma coisa. Existem vários provedores de JMS. Escolhemos, para este “post”, o ActiveMQ (da Apache Software Foundation).

Vejamos então os passos para implementar esta integração.

IMPORTANTE: Devido as características específicas de cada provedor JMS, os passos abaixo referem-se à integração com ActiveMQ, apenas. Outros provedores poderão requerer configurações diferentes.

Passo 1

É preciso garantir que a versão utilizada do ActiveMQ tenha sido criada para a mesma versão de Java que o iBOLT está utilizando. Por exemplo: o iBOLT 3.2 utiliza o Java 5 (1.5.x). Já a versão 3.2sp3, utiliza o Java 6 (1.6.x). Diferentes versões do ActiveMQ também exigem diferentes versões do Java.

 

 

Por exemplo: o ActiveMQ 5.4.3 utiliza o Java 5 e o 5.5.1, o Java 6.

É importante que ambos estejam “sintonizados” na mesma versão de Java.

Passo 2

É preciso garantir que o iBOLT encontre as classes do ActiveMQ, contidas nos arquivos JAR distribuídos com o produto. Existem várias formas de se fazer isso em Java. Abaixo, segue uma (não é a única, mas comprovadamente funciona):

  • Crie uma pasta dentro da pasta ‘home’ do iBOLT, e copie todos os JARs do ActiveMQ lá:

  • Edite o arquivo ‘MAGIC.INI’ e relacione estas classes na seção [MAGIC_JAVA], chave: CLASSPATH:

 

Passo 3

Acrescente as definições ‘java.naming.factory.initial’ e ‘java.naming.provider.url’ na seção [MAGIC_JAVA], chave: JVM_ARGS. O iBOLT utiliza JNDI para se comunicar com o provedor JMS e estas configurações farão ele encontrar o ActiveMQ. O valor destas definições vai variar conforme a instalação do provedor JMS:

Passo 4

O JNDI precisa ser configurado explicitamente. Crie um arquivo jndi.properties (ver regras aqui) na mesma pasta onde copiou (passo 2) os JARs do ActiveMQ. Neste arquivo deve ser informado o connectionFactoryNames, e também os nomes das filas que serão acessadas:

Coloque este arquivo jndi.properties dentro de um arquivo JAR. Isso pode ser feito com o comando:  jar –cf <ArquivoJAR> jndi.properties. Veja mais detalhes aqui.

Após, inclua este arquivo JAR na lista informado no ‘MAGIC.INI’, em [MAGIC_JAVA]CLASSPATH:

 

Com estas configurações, o iBOLT está apto a encontrar e conversar com o ActiveMQ.

 

Vejamos então os passos para concretizar esta integração em um projeto.

Passo 1

Devemos criar um “resource” do tipo JMS, e informar no “Connection Factory Name” o mesmo valor que especificamos no arquivo jndi.properties:

 

Passo 2

Utilizamos o componente JMS do iBOLT para fazer o acesso (leitura ou escrita) a um provedor de mensagens Java (neste caso, o ActiveMQ).

Os métodos “Send” são para gravar informações nas filas, e “Get“, para buscar informações da fila:

Quando o iBOLT Server executa o projeto e aciona o componente, os métodos “Get” buscarão dados que existam na fila informada, e os métodos “Send” incluirão dados nesta fila:

 

Manoel Frederico Silva
Product Manager & MAGIC Evangelist / Magic Software Brasil

Deixe um comentário

O seu endereço de e-mail não será publicado.