Websphere MQ 7.0.1 C#XMS连接导致10054(X'2746')tcp错误

时间:2011-10-12 15:56:18

标签: c# .net ibm-mq

我有一个简单的程序连接到远程队列管理器,它似乎工作正常,我可以发送和接收消息。但是我注意到,在每个连接中,我都在Windows应用程序事件管理器中遇到错误:

  

从主机myhost(12.213.143.252)收到错误。

     

从我的主机(12.213.143.252)接收数据时发生错误   TCP / IP。这可能是由于通信故障。

     

来自TCP / IP recv()调用的返回码是10054(X'2746')。   记录这些值并告诉系统管理员。

我认为这可能是因为我不能正确断开客户端,但我不确定我做错了什么。这是我用来测试连接的代码,这仍然导致了这个问题:

        XMSFactoryFactory factoryFactory = XMSFactoryFactory.GetInstance(XMSC.CT_WMQ);           
        IConnectionFactory cf = factoryFactory.CreateConnectionFactory();

        cf.SetStringProperty(XMSC.WMQ_QUEUE_MANAGER, WebSphereConfigObject.QueueManager);
        cf.SetStringProperty(XMSC.WMQ_HOST_NAME, WebSphereConfigObject.Host);
        cf.SetIntProperty(XMSC.WMQ_PORT, WebSphereConfigObject.Port);
        cf.SetStringProperty(XMSC.WMQ_CHANNEL, WebSphereConfigObject.ServerConnectionChannel);
        cf.SetIntProperty(XMSC.WMQ_CONNECTION_MODE, XMSC.WMQ_CM_CLIENT);
        IConnection connection = cf.CreateConnection();
        ISession session = connection.CreateSession(false, AcknowledgeMode.AutoAcknowledge);
        connection.Start();
        session.Close();
        connection.Stop();
        connection.Close();

任何帮助非常感谢!

2 个答案:

答案 0 :(得分:1)

从我所看到的事件10054由队列管理器进程amqrmppa记录。当此队列管理器进程与XMS客户端应用程序之间的套接字连接突然终止时,将记录该事件。

正常终止不会记录任何事件。

答案 1 :(得分:0)

尽量不要使用两个.close调用!!!

秒。 [1]:http://www-01.ibm.com/support/docview.wss?uid=swg27024064

正确关闭和断开连接 编写应用程序以正确关闭或处置不再使用的XMS对象。如果不这样做,尤其是IConnection或ISession实例,可能会限制与队列管理器的连接数。