在C#中,使用IBM WebSphere MQ,我运行:
var properties = new Hashtable();
properties.Add(MQC.HOST_NAME_PROPERTY, someHostName);
var queueManager = MQQueueManager(someQueueNameManager, properties);
我得到一个例外:
System.Exception: Channel and Connection MUST be specified
显然,它要我指定频道。但我不想指定频道。指定它是否重要?我的意思是,当我跑步时
var queueManager = MQQueueManager(someQueueNameManager);
它工作并连接到本地MQ。如何在不指定任何通道的情况下创建连接到不同主机中的队列管理器的MQQueueManager对象?如果需要指定频道,请解释原因。
答案 0 :(得分:1)
您需要MQI通道(Server Conn或Server Conn& Client Conn)通过网络连接到远程队列管理器(即在远程主机上运行的qmgr)。频道连接到qmgr并为您发送/获取消息。对于本地qmgr,您可以以绑定模式连接(以及您所做的事情)。此模式绕过网络堆栈并使用共享内存和信号量连接到qmgr。
这是IBM MQ中的基本技术概念之一。我建议阅读MQ引物。它很小,涵盖了使用它之前需要了解的所有MQ。