我需要使用.Net向MQ群集发送消息。我该怎么做?
MQEnvironment.Hostname = "10.1.1.22";
MQEnvironment.Port = 1455;
MQEnvironment.Channel = "SOMECHANNEL";
MQEnvironment.ConnectionName = "10.1.1.22(1432)";
MQQueueManager qm =new MQQueueManager("SOMEQM");
var openOptions = MQC.MQOO_INPUT_AS_Q_DEF| MQC.MQOO_OUTPUT;
var queue = qm.AccessQueue("MYREQUESTQUEUE", openOptions);
目前这在最后一行失败了。打开与群集队列的连接时,要发送的正确选项是什么?
答案 0 :(得分:1)
几点:
1)群集队列可能未托管在应用程序所连接的队列管理器上。
2)可以将消息放入未在应用程序连接的队列管理器上托管的群集队列。但是对于GET
条消息,队列must
将托管在应用程序所连接的队列管理器上。
您的应用程序正在使用MQC.MQOO_INPUT_AS_Q_DEF
选项,这意味着您正在尝试从队列中获取消息,但该应用程序所连接的队列管理器上不存在该队列。因此异常被抛出。您需要删除MQC.MQOO_INPUT_AS_Q_DEF
选项,并使用MQC.MQOO_OUTPUT
将消息发送/放入群集队列。