【发布时间】:2015-09-11 17:33:21
【问题描述】:
我正在尝试使用 .NET 客户端连接到现有的 JMS 队列。 我知道队列正在工作,我已经使用 IBM MQ Explorer 浏览过它。
在以下代码中,对 factory.CreateConnection 的调用一直挂起 - 它不会跳转到下一行,也不会显示任何错误消息。它甚至不消耗任何 CPU。
是否有任何我应该尝试让它工作的选项(或至少让它向我显示任何类型的错误消息)?
private static IConnectionFactory GetConnectionFactory()
{
var factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);
var cf = factoryFactory.CreateConnectionFactory();
cf.SetStringProperty(XMSC.WMQ_HOST_NAME, "server address");
cf.SetIntProperty(XMSC.WMQ_PORT, portnumber);
cf.SetStringProperty(XMSC.WMQ_CHANNEL, "channelname");
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, "queuemanager");
cf.SetIntProperty(XMSC.WMQ_BROKER_VERSION, XMSC.WMQ_BROKER_UNSPECIFIED);
return (cf);
}
main方法有以下几个:
var factory = GetConnectionFactory();
var connection = factory.CreateConnection("username", null);
【问题讨论】:
-
您使用的是什么版本的 XMS 和 MQ?您是否安装了完整的 MQ 客户端?
-
我已经安装了 mqc7_7.0.1.12_win(MQ 客户端)和 ia9h_2.0.0.12(XMS)
-
还有队列本身 - MQ Explorer 在 Version 属性中显示 07010003。平台 Unix,命令级别 710。这些信息对您有帮助吗?
-
更好的是,获得更新的 MQ 客户端和队列管理器版本。您拥有的那个将在 3 个月内失去支持。如果它在生产中,您将希望能够打开 PMR,是吗?此外,随着产品更新,.Net 类会变得更好。另外仅供参考:“队列管理器”是队列的容器。队列没有版本号,但队列管理器有。我之所以提到这一点,是因为对组件结构的准确理解往往会产生更好的代码来使用它。
-
谢谢。我安装了mqc8_8.0.0.3_win64 mq客户端,应该是最新的。不,应用程序不会挂起,也不会抛出任何异常,只是自行终止进程 - 再次在 factory.CreateConnection 调用中。我的catch子句中没有断点被击中,整个过程被关闭。它甚至将一个事件写入 Windows 事件日志,并将其追加