我有一個應用程序使用WebSphere MQ通過WebSphere將數據發送到雲中的數據中心。部分功能是,如果服務器端用戶檢測到30分鐘內沒有收到消息,線程將暫停5分鐘,並且連接被刪除。當它重新啓動時,它重新連接。IBM MQ XMS訂閱未關閉
實際上,我發現斷開連接並沒有刪除訂閱。嘗試重新連接時,我看到此錯誤:
「創建訂閱可能存在問題,因爲它正在被另一個消息使用者使用。 請確保任何使用此訂閱的消息使用者在嘗試創建新名稱同名,請參閱鏈接的例外以獲取更多信息。「
這表明消息處理程序仍然連接,意味着斷開連接失敗。對於XmsClient對象斷開代碼(庫的一部分,但我的一個同事可能已經改變了它)是:
public override void Disconnect()
{
_producer.Close();
_producer.Dispose();
_producer = null;
_consumer.MessageListener = null;
_consumer.Close();
_consumer.Dispose();
_consumer = null;
_sessionRead.Close();
_sessionRead.Dispose();
_sessionRead = null;
_sessionWrite.Close();
_sessionWrite.Dispose();
_sessionWrite = null;
_connection.Stop();
_connection.Close();
_connection.Dispose();
_connection = null;
//GC.Collect();
IsConnected = false;
}
任何人有任何的想法,爲什麼連接是否仍然存在?
謝謝Shashi,這個工作很完美。 – MrShoes