Estou engajado no desenvolvimento e design de serviços de integração para IBM Integration Bus e desejo compartilhar, em minha opinião, informações úteis.
No processo de trabalhar em um novo serviƧo, tornou-se necessƔrio criar um adaptador para o IS que implementa a interface de fila de mensagens do Oracle Advanced Queuing.
Depois de fazer algumas pesquisas, identifiquei três opções de integração em ordem de prioridade:
- Oracle Messaging Gateway , desde
- IncluĆdo na licenƧa Oracle EE. Felizmente, a organização possui tal
- Uma implementação de middleware orientado a mensagem (MOM) com sistemas de mensagens não Oracle, incluindo IBM MQ
- Integra-se com IIB usando nós MQ nativos (MQInput / MQOutput / MQGet)
- Oracle Internet Directory desde
- Implementa JNDI necessÔrio para integração JMS
- Integra-se com IIB usando nós JMS nativos (JMSInput / JMSOutput / JMSReceive)
- Implementação personalizada em Java desde
- Existe uma API Java para Oracle AQ
- Integra-se com IIB usando o nó JavaCompute
Eu esperava sair facilmente porque Tinha certeza de que escolheriam uma das duas primeiras opƧƵes. A base de conhecimento da IBM detalha como configurar interaƧƵes com os produtos especificados. Mas, infelizmente, por uma sƩrie de razƵes, a escolha recaiu sobre o Java nu.
Apesar do fato de que isso não é muito corporativo e exclui o suporte de qualquer fornecedor, escrevi o adaptador. Decidi usar JMeter para teste.
Sobre como configurar o envio de solicitaƧƵes para a fila AQ encontrada aqui .
Tudo deu certo e sugeriu que esse mecanismo pode ser aplicado em um broker criando um serviço de configuração não padrão, como JMSProvider. Era necessÔrio apenas evitar a criação de um jar-apelido com parâmetros jndi e não apontar credenciais para a base.
Na verdade, para isso vocĆŖ precisa:
- aqapi.jar, jta.jar, ojdbc8.jar
- JNDI- :
mqsisetdbparms BRK_NAME -n jndi::oracle.jms.AQjmsInitialContextFactory -u oracleUser -p oraclePassword
- JMS-, :
- URL ā jndiEnvironmentParms
- ā jarsURL
- ā connectionFactoryName
- ā initialContextFactory
- ā jmsProviderXASupport
mqsicreateconfigurableservice BRK_NAME -c JMSProviders -o Service_AQ_JMS -n jarsURL,jndiEnvironmentParms,jmsProviderXASupport,connectionFactoryName,initialContextFactory -v "/home/mqm/aq/lib","db_url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostName) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=serviceName)))","true","QueueConnectionFactory","oracle.jms.AQjmsInitialContextFactory"
- JMS- . Queues/QUEUE_NAME, Topics/TOPIC_NAME. destination list jndi://, .. jndi://Queues/QUEUE_NAME.
Como resultado, tudo funciona em nós nativos, quase sem qualquer iniciativa.
Espero que seja útil para alguém, pois esse método não é descrito pelo fornecedor.