我正在使用MQ 7x客户端的MQ.NET类,并且导入和导出消息正常工作。但是,如果存在网络断开连接或远程管理器断开连接,那么IBM MQ客户端不会自动重新连接。我得到:如何自动连接IBM MQ客户端?
Error: Remote host ' not available, retry later.
有没有办法在发生这些问题时自动连接并继续处理消息?
还有就是要检查队列管理器的连接属性:
mqQMgr = new MQQueueManager("My queue manager name" ,"my channel name",",my connection name");
mqQMgr.IsConnected
返回真/假,但这并不能帮助自动连接。
这是我在用的:
// mq properties
Hashtable properties = new Hashtable();
properties.Add(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED);
properties.Add(MQC.CONNECTION_NAME_PROPERTY, "connectionName");
properties.Add(MQC.CHANNEL_PROPERTY, "channelName");
properties.Add(MQC.CONNECT_OPTIONS_PROPERTY, MQC.MQCNO_RECONNECT_Q_MGR);
mqQMgr = new MQQueueManager("my queue manager"), properties); //error thrown
我得到上面的一行
IBM MQException caught in send message - reason code - 2046- message -CompCode: 2, Reason: 2046
{"MQRC_OPTIONS_ERROR"}
base {System.ApplicationException}:
{"MQRC_OPTIONS_ERROR"}
CompCode: 2
CompletionCode: 2
Message: "MQRC_OPTIONS_ERROR"
Reason: 2046
我使用的代码连接相同的队列管理,MQCNO_RECONNECT_Q_MGR,我得到的错误 - 原因码2046。我使用的是7倍的客户端和连接到远程队列(这是6.0.5.2) – Sharpeye500 2013-04-08 18:31:36
啊!那就是问题所在。自动客户端重新连接需要队列管理器7.0或更高版本。它不适用于v6.0.x. – Shashi 2013-04-09 00:28:35
对于我来说即使使用客户端版本7.5.0.5,我的客户端程序在Java中也不会重新连接,即使我通过下面。它总是与2009年的错误失败qMgr =新的MQQueueManager(queueMgr,MQConstants.MQCNO_RECONNECT); – sijo0703 2016-07-26 21:59:57