次のコードを使用してMQQueueおよびMQQueueManagerから切断しています。
Queue.Close(); log.Info( "Queue IsOpen:" + Queue.IsOpen.ToString()); キュー=null; QueueManager.Disconnect(); QueueManager.Close(); log.Info( "QM IsOpen:" + QueueManager.IsOpen.ToString()); log.Info( "QM IsConnected:" + QueueManager.IsConnected.ToString()); QueueManager = null;
そして、私はこれについて次のログエントリを取得します:
キューIsOpen:false QM IsOpen:false QM IsConnected:false
しかし、コマンドプロンプトからnetstat -nコマンドを実行すると、数時間後にMQサーバーへの接続の長いリストが表示され、それらの接続の状態はCLOSE_WAITになります。
TCP接続が完全に閉じられない理由はありますか?コードからそれらを殺すことができる方法はありますか?現在、開いている接続をクリーンアップするクライアントアプリを再起動する必要があります。
WebSphere MQのバージョンは6.0.2.6であり、.NETライブラリーはMQ7のものです。