如何检查MQ是否已连接

时间:2017-12-14 22:40:06

标签: ibm-mq

我正在尝试连接到我的MQ服务器。我有2个MQ服务器:服务器1和服务器2,并为ach = wb.macro('AddCommentHook') ach('Sheet1!A1', 'test 123') 将其设置为connectionNameList。如果服务器2出现故障,MQ是否有办法连接到服务器1?如何知道MQ服务器是否已连接?我看到mqConnectionFactory设置为clientReconnectOptions,但我不确定是什么。

1 个答案:

答案 0 :(得分:1)

ClientReconnectOptions的可能设置记录在IBM MQ知识中心页面CLIENTRECONNECTOPTIONS

下面是使用setClientReconnectOptions进行设置的示例,以便应用程序可以重新连接到connectionNameList中设置的两个主机(端口)组合上的任何队列管理器列表。

MQQueueConnectionFactory factory = new MQQueueConnectionFactory();

factory.setQueueManager("QMNAME");
factory.setChannel("SVRCONN.CHL");
factory.setConnectionNameList("hostName1(port),hostName2(port)");
factory.setClientReconnectOptions( WMQConstants.WMQ_CLIENT_RECONNECT );

// Set the amount of time you will attempt to reconnect in seconds
factory.setClientReconnectTimeout( 43200 ); //12 hours
//default is 1800 seconds
//factory.setClientReconnectTimeout(WMQConstants.WMQ_CLIENT_RECONNECT_TIMEOUT_DEFAULT);

请注意,客户端不会总是尝试重新连接,请参阅Linux上的endmqm手册页中的以下内容:

  

如果您发出endmqm来停止队列管理器,那么可重新连接的客户端会这样做   不要试图重新连接。要覆盖此行为,请指定-r   或-s选项以使客户端能够开始尝试重新连接。

     

注意:如果队列管理器或通道意外终止,则可重新连接   客户开始尝试重新连接。