【发布时间】:2018-04-30 01:57:41
【问题描述】:
我在连接到 IBMMQ 时收到此错误消息 MQRC_HOST_NOT_AVAILABLE。
我对使用 IBMMQ 比较陌生,但是已经接到了这个项目,需要让我们的 .NET WCF 代码与 MQ 对话。
我们的代码目前如下所示:
Hashtable queueManagerProps = new Hashtable();
queueManagerProps.Add(MQC.HOST_NAME_PROPERTY, mqhost);
queueManagerProps.Add(MQC.CHANNEL_PROPERTY, mqchannel);
queueManagerProps.Add(MQC.PORT_PROPERTY, ConfigurationManager.AppSettings["MQPort"].ToString());
queueManagerProps.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
try
{
mqQMgr = new MQQueueManager(qmname, queueManagerProps);
}
catch (Exception ex)
{
throw new Exception(String.Format("Failed to connect to MQ Queue Manager {0}, channel {1} on host {2} on port {3}. Check inner exception for root cause.", qmname, mqchannel, mqhost, ConfigurationManager.AppSettings["MQPort"].ToString()), ex);
}
我已经确认 (1) 所有属性都包含值,并且 (2) 这些值与我们的 MQ 服务器的设置相匹配。
我还查看了 AMKERR01.LOG 日志文件,自本月早些时候设置队列以来没有任何条目。
为什么我的新 MQQueueManager() 调用抛出这个异常?有没有可能是权限问题,或者肯定是网络/连接/配置相关?
【问题讨论】:
-
你的 dll 来自哪个版本的 mq?
-
根据 MQ Explorer 中的属性快速查看,我们的版本为“09000000”,amqmdnet.dll 的版本为“9.0.0.0”,日期为 18/05/2016。
-
您是否在客户端或队列管理器上检查了 AMKERR01?为什么不使用 9.0.0.3?
-
问题已解决。主机名拼写错误。傻我。