XMS.NET无限期挂在factory.CreateConnection上("用户名",null);

时间:2015-06-25 08:15:32

标签: c# jms ibm-mq xms

我正在尝试使用.NET客户端连接到现有的JMS队列。 我知道队列正在运行,我已经使用IBM MQ Explorer浏览了它。

在下面的代码中,对factory.CreateConnection的调用保持挂起 - 它不会跳转到下一行,不会显示任何错误消息。它甚至不消耗任何CPU。

我是否应该尝试使其工作(或者至少让它向我显示任何类型的错误消息)?

last = data[0]
dist = 0
for i in data[1:]:
    dist = max(dist, i-last)
    last = i
return dist

主要方法如下:

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);
    }

1 个答案:

答案 0 :(得分:1)

我没有看到您的代码有任何问题,使用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。

相关问题