XMS.NET 无限期挂在 factory.CreateConnection("username", null);
XMS.NET hanging indefinitely on factory.CreateConnection("username", null);
我正在尝试使用 .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);
}
主要方法有以下几个:
var factory = GetConnectionFactory();
var connection = factory.CreateConnection("username", null);
我没有发现您的代码有任何问题,使用 MQ v8 对其进行了测试并且工作正常。我建议你这样做:
1) XMS 也可以 运行 在非托管模式下。所以改变
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
到
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED)
看看是否有帮助。
2) 当调用挂起时,进入调试并查看调用堆栈以确定挂起点。如果没有 CPU 被消耗,它可能正在等待一些系统事件。
3) 打开 IBM 的 PMR。
我正在尝试使用 .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);
}
主要方法有以下几个:
var factory = GetConnectionFactory();
var connection = factory.CreateConnection("username", null);
我没有发现您的代码有任何问题,使用 MQ v8 对其进行了测试并且工作正常。我建议你这样做:
1) XMS 也可以 运行 在非托管模式下。所以改变
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
到
cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT_UNMANAGED)
看看是否有帮助。
2) 当调用挂起时,进入调试并查看调用堆栈以确定挂起点。如果没有 CPU 被消耗,它可能正在等待一些系统事件。
3) 打开 IBM 的 PMR。