【发布时间】:2018-07-26 15:47:48
【问题描述】:
我正在尝试连接到 IBM WebSphere MQ 8.x,但在 IBM 世界中,应该像 RabbitMQ 一样简单的事情似乎太难了。
我创建了一个控制台应用程序 (.NET Framework),引用了 amqmdnet.dll 8.0.0.10)
这是我的sn-p
var connectionName = "X.X.X.X(4418)";
Hashtable properties = new Hashtable();
properties.Add(MQC.CONNECTION_NAME_PROPERTY, connectionName);
properties.Add(MQC.CHANNEL_PROPERTY,"TEST_XXX_RECEIVER");
var mqQMgr = new MQQueueManager("DEFAULT.XXXMQCOL1",properties );
mqQMgr.Connect();
我在尝试连接时得到的是 IBM.WMQ.MQException: 'MQRC_Q_MGR_NAME_ERROR'
为此,我将队列名称放在节点上找到的名称
Channel属性是我在websphere的队列节点中定义的一个通道
我尝试在 ip:port 上 telnet 并连接
有什么建议吗?
更新 #1
即使我从上下文菜单中“开始”,它仍然处于非活动状态,这会导致构造函数挂起吗?
更新 #2
我已经成功了。我在两个步骤上出错了
- 我在侦听器下停止了 LISTENER.TCP
- 我指向的是队列管理器端口 4418,我必须指向 1414(Listener.TCP 端口)
现在我可以连接了,管理员可以关闭它
【问题讨论】:
-
您有空的
hashTable变量和properties变量。现在让我们看看你将哪个传递给MQQueueManager... -
我已经删除了 hashTable 并且只使用了使用的属性。但它挂在 MQQueueManager
-
我编辑了它...我已经尝试了整个上午但没有成功...所以这是一个错误的打印
-
检查
%MQ_FILE_PATH%\errors\AMQERR01.LOG是否有错误并用找到的内容更新问题。 -
在过去,我付出了很多努力才能让它发挥作用,但很难说你做错了什么。主要是与 websphere 配置相关的问题。只需谷歌您遇到的所有错误并尝试。这里是MQRC_Q_MGR_NAME_ERROR related answer,这里是an example how to connect(如果您遇到授权错误,请阅读有关 mqm 用户的说明)