Я отключаюсь от MQQueue и MQQueueManager со следующим кодом:
Queue.Close();
log.Info( "Queue IsOpen: " + Queue.IsOpen.ToString() );
Queue = null;
QueueManager.Disconnect();
QueueManager.Close();
log.Info( "QM IsOpen: " + QueueManager.IsOpen.ToString() );
log.Info( "QM IsConnected: " + QueueManager.IsConnected.ToString() );
QueueManager = null;
И для этого я получаю следующие записи в журнале:
Queue IsOpen: false
QM IsOpen: false
QM IsConnected: false
Но через несколько часов после запуска команды netstat -n из командной строки я получаю длинный список подключений к серверу MQ, и состояние этих подключений равно CLOSE_WAIT .
Есть идеи, почему TCP-соединения не закрываются полностью? Есть ли способ, которым я мог бы убить тех из кода? В настоящее время мне придется перезапустить клиентское приложение, которое очищает открытые соединения.
Версия WebSphere MQ - 6.0.2.6, а библиотеки .NET - из MQ 7.