MQ에서 기존 큐 관리자의 인스턴스가있는 경우 응용 프로그램이 액세스 할 수있는 queuemanager1을 말하십시오. queuemanager1을 통해 다른 큐 관리자 인 queuemanager2의 큐를 가리키는 큐를 생성하여 메시지를 보낼 수 있습니다. 이는 아마도 앱이 queuemanager2에 직접 액세스 할 수 없지만 queumanager1을 호스팅하는 MQ 서버가 수행하기 때문에 수행됩니다.JMS API의 QueuManager를 통해 전달
코드는 다음과 같이 보입니다 :
MQQueue destQueue = queuemanager1.accessQueue ("queFromAnotherMngr"CMQC.MQOO_OUTPUT | CMQC.MQOO_FAIL_IF_QUIESCING, "queuemanager2", NULL, NULL을);
JBoss AS 6 용 IBM MQ JCA 어댑터를 사용하도록 코드를 리팩터링합니다. 그래서 바닐라 JMS API (InitialContext JNDI 조회, 프로듀서 등 사용)를 사용하여 연결을 관리해야한다고 생각합니다. JBoss.
그러나 일반 JMS에서는받는 MQ 서버가 내 메시지를 다른 큐 관리자 (queuemanager2)의 다른 큐로 전달할 수있는 방법을 알 수 없습니다.
지금까지 조사한 내용에서 Message Queuing Message Descriptor (MQMD)라는 MQ로 전송 된 개체가 있으며 "ReplyToQMgr"및 "ReplyToQ"라는 필드가 있습니다. JMS API를 JCA 어댑터와 함께 사용하여 이러한 필드를 업데이트하는 방법을 찾으면 내 솔루션이 있다고 생각합니다. 이견있는 사람? 아이디어? 제안? 솔루션? 감사!
이렇게하면 URI를 사용하여 큐를 생성 할 수 있습니다. 큐 destinationQueue = session.createQueue ("queue : // QMgr2/Q2")는 다음과 같은 경우에도이 새 queueManager/Queue (QMgr2/Q2)로 메시지를 라우팅 할 수 있습니다. 세션은 jca 어댑터를 사용하는 원래 연결 팩토리의 jndi 조회에서 가져온 queumanager에서 생성 되었습니까? –
링크 된 예외를보고 할 필요가 있음을 알고 있습니다. 어쨌든 입력 해 주셔서 감사합니다. –
예. 연결되지 않은 QMgr을 지정하면 WMQ가 필요한 경로를 해결하려고합니다. –