2013-06-12 2 views
1

원격 큐 관리자의 클러스터 큐에 메시지를 넣을 수 없습니다. MQGetMessageOptions 및 MQPutMessageOptions를 사용하고 있습니다. 나는 7.5 MQ 서버와 클라이언트 (7.5.0.1)클러스터 큐가있는 IBM MQ 문제점

그것은 이유 코드를 throw를 사용하고 - 2085- 메시지 -CompCode : 2, 이유 : 2085

큐 및 큐 관리자 것은 MQ 클러스터로 연결됩니다.

mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE); 

amqsput.exe를 사용하여 테스트 메시지를 작성하려고했는데 제대로 작동합니다.

의견이 있으십니까?

답변

4

이 호출 :

mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE); 

메시지를 얻기위한 클러스터 큐를 엽니 다. 메시지를 가져 오려면 응용 프로그램이 로컬 큐 관리자에 연결되어 있어야합니다. 로컬 큐 관리자는 응용 프로그램이 연결된 큐 관리자를 의미합니다. 큐 관리자는 응용 프로그램과 동일한 시스템에 있거나 다른 시스템에있을 수 있습니다. 메시지는 리모트 큐 관리자에서 가져올 수 없습니다. 응용 프로그램이 클러스터 큐를 호스트하는 큐 관리자와 다른 큐 관리자에 연결되면 메시지를 클러스터 큐에 넣을 수 있습니다.

AMQSPUT은 Put을위한 큐를 열고 Get을위한 큐를 열지 않기 때문에 작동합니다. 내가 마지막에 MQC.MQOO_OUTPUT를 추가 할 수

mqQueue = mqQueueMgr.AccessQueue("queue name", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_OUTPUT); 
+0

감사 MQ 메시지를 넣어보십시오 :

그래서 문제를 해결하기 위해 옵션으로 변경해야합니다 다른 항목을 제거하는 대신 아래에 표시된 것처럼 (이렇게하면 로컬 및 클러스터 대기열 모두에서 작동합니다)? mqQueue = mqQueueMgr.AccessQueue ("큐 이름", MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_INPUT_SHARED | MQC.MQOO_BROWSE | MQC.MQOO_OUTPUT); – Sharpeye500

+0

아니요. MQC.MQOO_OUTPUT을 추가해도 계속 실패합니다. INPUT_SHARED 및 BROWSE 옵션을 제거해야합니다. 클러스터 대기열에서 메시지를 가져 오려면 응용 프로그램이 클러스터 대기열이 호스트 된 대기열 관리자에 연결되어 있어야합니다. – Shashi

+0

감사합니다. 로컬 및 클러스터 대기열에서 작동합니까? – Sharpeye500

0

MQQueue queue = queueManageArg.AccessQueue(queueNameArg, 
       MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);