我們目前正在構建一個需要與某些IBM WebSphere隊列進行通信的應用程序。在隊列的另一頭還有另一個世界。由於一些未知的情況(對我而言),連接到MQQueueManager每次需要17秒,但通過隊列發送和接收消息並不是一件耗時的工作。因爲我們現在將一個Web服務放在WebSphere前面,所以我們提出了裝飾和緩存MQQueueManagers和MQQueues的想法,並在每個消息發送之前驗證它們是否已連接並分別打開;如果沒有,我們嘗試連接到MQQueueManager,分別打開MQQueue(再次,連接到MQQueueManager需要17秒,打開MQQueue是「即時」)。所以我們期待WebSphere每一次都會斷開與MQQueueManager的連接(我無法確定,因爲我們現在不能進行嚴格的測試,但我們應該謹慎),而不幸的調用程序會等待17秒才能重新連接。就目前而言,我們無法預測這種事情的發生。 我們當前的實現使用.NET的WebSphere MQ類。當MQQueueManager斷開連接或關閉相關隊列時,是否有可能收到回調通知?如何在IBM Queue Manager斷開連接時接收通知?
1
A
回答
1
是的!如果您使用最新的WMQ .Net類和最新的IA9H SupportPac,您將獲得異步回調方法。 (這裏附帶.Net示例代碼,演示如何註冊和使用回調函數)。我的理解是,如果連接是可用的,則此方法會在您的回調例程有消息時傳遞消息,或者向註冊的異常偵聽器傳遞例外丟失或隊列設置爲GET(DISABLED)
。
獲取最新的WMQ客戶端here。使用名稱MQC *查找SupportPacs。 v8.0客戶端是MQC8,v9客戶端是MQC9等。
如果您有舊版本的.Net WMQ類,並且由於某種原因無法升級,您可以始終保持單獨的線程打開並定期輪詢隊列。不過,不要頻繁輪詢。在過去,我看到人們使用類變量作爲倒數計時器。每次成功檢索消息或將其放入隊列時,定時器都會重置爲最大值。當計時器達到零時,輪詢隊列。這樣,只有在連接上沒有其他流量時才輪詢隊列。
相關問題
- 1. WMQ(IBM Queue)連接超時
- 2. IBM Case Manager連接
- 3. grpc客戶端斷開連接時可以收到通知嗎?
- 4. 如何通知互聯網連接斷開,但WiFi仍連接
- 5. 如何在客戶端斷開連接時獲取NSNetService通知?
- 6. Android Wear斷開連接通知
- 7. 通過SSL連接到IBM Tivoli Directory時LDAP搜索斷開連接
- 8. 如何知道何時藍牙在Android 1.5上斷開連接?
- 9. 斷開連接時銷燬socket.io連接
- 10. 如何在生產者連接中斷時得到通知?
- 11. Objective-C如何編寫Wifi斷開連接彈出通知?
- 12. 如何獲取網絡更改通知(連接,斷開,更改)
- 13. Flash Builder更新查詢問題 - 通道斷開連接在收到確認之前,通道斷開連接
- 14. 如何斷開Postgrex連接?
- 15. WebSockets:如何在客戶端連接斷開時通知所有訂戶?
- 16. SSIS - 連接斷開時
- 17. 如何從接收器應用程序斷開連接?
- 18. 接收通知
- 19. 如何在RabbitMQ Queue中添加新消息時收到通知?
- 20. 如何斷開連接時重新連接到SQLServer?
- 21. 警告:遠程連接斷開連接,連接到169.254.169.254超時
- 22. 如何在一段時間間隔後使HTTP連接超時/斷開連接?
- 23. Socket.IO在輪詢時沒有收到斷開連接事件
- 24. 如何斷開連接與連接管理器在WEC7
- 25. 如何在連接後測試TCPClient斷開的連接?
- 26. 蘋果推送通知網關連接,未收到通知
- 27. socket.io斷開連接事件,客戶端斷開連接檢測
- 28. 斷開連接之前的NodeJS連接
- 29. Android BLE GATT斷開連接與設備斷開連接
非常感謝!那就是我一直在尋找的東西! – DaeMoohn 2009-11-20 07:32:06
它說沒有找到文件。這不是免費的,還是我應該使用公司憑據? – DaeMoohn 2009-11-20 07:59:40
有人可以提供一個代碼樣本嗎?我沒有找到.NET類的任何東西。 – DaeMoohn 2009-11-20 08:46:25