Я не могу повторно подключиться к MQQueueManager через некоторое время, поскольку возникает исключение (код причины 2059 - MQRC_Q_MGR_NOT_AVAILABLE), когда я создаю новый объект MQQueueManager. Мое клиентское приложение написано на .NET / C #, и я запускаю его на Win2003.
Однако я могу подключиться к QM после перезапуска клиентского приложения. Это может указывать на некорректное состояние библиотек QM? Как я могу сбросить состояние в коде, чтобы я мог повторно подключиться к QM? Есть ли способ сбросить / отключить все активные TCP-подключения к QM из кода клиентского приложения?
Мой код подключения:
Hashtable properties = new Hashtable(); properties.Add( MQC.HOST_NAME_PROPERTY, Host ); properties.Add( MQC.PORT_PROPERTY, Port ); properties.Add( MQC.USER_ID_PROPERTY, UserId ); properties.Add( MQC.PASSWORD_PROPERTY, Password ); properties.Add( MQC.CHANNEL_PROPERTY, ChannelName ); properties.Add( MQC.TRANSPORT_PROPERTY, TransportType ); // Following line throws an exception randomly MQQueueManager queueManager = new MQQueueManager( qmName, properties );
Трассировки стека:
Source: amqmdnet CompletionCode: 2 ReasonCode: 2059 Reason: 2059 Stack Trace: at IBM.WMQ.MQBase.throwNewMQException() at IBM.WMQ.MQQueueManager.Connect(String queueManagerName) at IBM.WMQ.MQQueueManager..ctor(String qmName, Hashtable properties) at WebSphereMQOutboundAdapter.WebSphereMQOutbound.ConnectToWebSphereMQ()