我有一个简单的程序连接到远程队列管理器,它似乎工作正常,我可以发送和接收消息。但是我注意到,在每个连接中,我都在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();
任何帮助非常感谢!
答案 0 :(得分:1)
从我所看到的事件10054由队列管理器进程amqrmppa记录。当此队列管理器进程与XMS客户端应用程序之间的套接字连接突然终止时,将记录该事件。
正常终止不会记录任何事件。
答案 1 :(得分:0)
尽量不要使用两个.close调用!!!
秒。 [1]:http://www-01.ibm.com/support/docview.wss?uid=swg27024064
正确关闭和断开连接 编写应用程序以正确关闭或处置不再使用的XMS对象。如果不这样做,尤其是IConnection或ISession实例,可能会限制与队列管理器的连接数。