Integrando o Magic xpi e o ActiveMQ

O Magic xpi tem em sua vasta lista de conectores, um exclusivo Resultado de imagem para ActiveMQ

para interface com sistemas de filas de mensagens em Java (JMS).

Vamos ver a seguir como criar uma interface com o ActiveMQ, um conhecido JMS do mercado.

ActiveMQ

Nesta demonstração, usaremos a versão 5.15.3 do ActiveMQ. Usaremos as seguintes configurações:

  • ActiveMQ – Servidor : SERENNO
  • ActiveMQ – Porta de acesso TCP: 61616
  • ActiveMQ – Usuário de login: admin
  • ActiveMQ – Senha: admin
  • ActiveMQ – Nome da fila: saludo

NOTA: é preciso liberar as portas tcp 1883, 8161 e 61616 no seu firewall

Com o servidor ActiveMQ no ar:

acesse o seu console web e crie uma fila, que neste exemplo se chamará “saludo“:

Registre nela, através da opção “Send“, uma mensagem qualquer para posterior captura pelo Magic xpi:

NOTA: use a opção “Persistent Delivery” para garantir que a mensagem não se perca caso o servidor ActiveMQ seja reiniciado.

Na sequência, criae um arquivo texto chamado “jndi.properties“, seguindo o modelo abaixo:

## ---------------------------------------------------------------------------
## Licensed to the Apache Software Foundation (ASF) under one or more
## contributor license agreements. See the NOTICE file distributed with
## this work for additional information regarding copyright ownership.
## The ASF licenses this file to You under the Apache License, Version 2.0
## (the "License"); you may not use this file except in compliance with
## the License. You may obtain a copy of the License at
## 
## http://www.apache.org/licenses/LICENSE-2.0
## 
## Unless required by applicable law or agreed to in writing, software
## distributed under the License is distributed on an "AS IS" BASIS,
## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
## See the License for the specific language governing permissions and
## limitations under the License.
## ---------------------------------------------------------------------------

# START SNIPPET: jndi

java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory

# use the following property to configure the default connector
#java.naming.provider.url = vm://localhost
java.naming.provider.url = tcp://serenno:61616

# use the following property to specify the JNDI name the connection factory
# should appear as.
connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry

# register some queues in JNDI using the form
# queue.[jndiName] = [physicalName]
queue.saludo = saludo

# register some topics in JNDI using the form
# topic.[jndiName] = [physicalName]
topic.MyTopic = example.MyTopic

# END SNIPPET: jndi

Observe que duas informações:

java.naming.provider.url=tcp://???
queue.???=???

variam de valor cfe. o ambiente do ActiveMQ. Neste caso, o nome da fila criado foi “saludo” e o servidor:porta é “serenno:61616“.

Coloque este arquivo dentro de um JAR chamado OR_JNDI.jar. Para isso, pode utilizar a ferramenta do próprio Java (https://www.cs.mun.ca/java-api-1.5/tooldocs/windows/jar.html):

jar cf OR_JNDI.jar jndi.properties

Os ajustes de ambiente (configurações) do ActiveMQ estão finalizados.

Magic xpi – Ambiente

Nesta demonstração, usaremos a versão 4.7 do Magic xpi. Usaremos as seguintes configurações:

  • Magic xpi – Pasta de instalação : C:\MSE\Magic\xpi\4.7\product (%magicxpi_root%)

A primeira ação necessária é substituir a JRE padrão de instalação do Magic xpi, que é a v7, por uma v8 (1.8_???).

Isso é necessário porque as classes Java desta versão do ActiveMQ exigem o Java 8.

NOTA: versões anterior do ActiveMQ podem exigir o Java 7 ou até o Java 6, Java 5, depende da versão.

Para tanto, instale o Java 8 32 Bits em alguma pasta qualquer, e faça o seguinte:

  • Renomeie a pasta %magicxpi_root%\Runtime\JRE para %magicxpi_root%\Runtime\JRE_v7
  • Copie a pasta JRE desta instalação do Java 8 32 Bits para dentro de %magicxpi_root%\Runtime

Após, crie uma pasta chamada “AMQ” dentro de %magicxpi_root% e copie nela os arquivos:

  • activemq-all-5.15.3.jar (vem da instalação do ActiveMQ)
  • OR_JNDI.jar (criado como descrito acima)

Na sequência, acesse o arquivo  %magicxpi_root%Runtime\Magic xpa\MAGIC.INI e edite-o cfe. descrito a seguir:

Na seção [MAGIC_JAVA]CLASSPATH adicione:

;..\..\AMQ\activemq-all-5.15.3.jar;..\..\AMQ\OR_JNDI.jar

no final de lista de JARs especificados:

Na seção [MAGIC_JAVA]JVM_ARGS adicione:

-Djava.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory -Djava.naming.provider.url=tcp://serenno:61616

no final da lista de argumentos.

Salve as alterações feitas.

NOTA: nunca salve os arquivos MAGIC.INI ou IFS.INI no formato UTF8+BOM.

Os ajustes de ambiente (configurações) do Magic xpi estão finalizados.

Magic xpi – Testando o acesso

No seu projeto de testes, crie um recurso do tipo JMS e especifique:

  • Connection Factory Name : queueConnectionFactory
  • User : admin
  • Password : admin

No fluxo de integração, adicione o componente JMS:

e para ler dados de uma fila, configure-o como:

  • Method : Quick Get
  • Queue name : saludo
  • Acknowledge Mode : AUTO_ACKNOWLEDGE
  • Message (Out): <Variavel_Blob>

Concluído!

Ao executar este fluxo, no momento da chamada ao componente JMS, a mensagem é removida do ActiveMQ e salva na <Variavel_Blob> que foi informada:

 

Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil

Manoel Frederico Silva – Gerente de Tecnologia e Evangelista MAGIC – Magic Brasil

Para receber os artigos do Blog Magic Brasil em primeira mão no seu email registre-se aqui

 

Novo Comentário