我們使用IBM MQ6.1。並使用IBM API將消息發送到隊列。 由於我們需要發送大量的消息,想知道我們是否可以使用多線程並將消息發送到同一個隊列。 有什麼建議嗎?我們使用IBM MQ6.1。我們可以使用多線程將消息發送到隊列嗎?
1
A
回答
1
絕對如此。您可以擁有與內存一樣多的CPU,並允許CPU使用。如果你想看到性能改進,每個線程都需要它自己的連接句柄。如果使用單個連接句柄,則來自多個線程的所有GET和PUT活動都將通過連接句柄進行同步。如果使用多個連接句柄,則GET和PUT活動可以並行進行。有關更多詳細信息,請參閱WMQ使用Java手冊中的Multithreaded programs。
只要確保像MAXUPROCS這樣的操作系統內核設置被設置爲允許WMQ運行足夠的線程來接收連接並且像MAXHANDS和MAXCHANNELS這樣的WMQ設置被調高以適應負載。請記住,工作單元是線程範圍的,因此每個線程獨立於其他的同步點 - 例如,當您在線程內發出COMMIT時,它只會承擔特定線程放置的消息,假設它具有專用連接。隊列有一個DEFSOPT(默認共享選項)的屬性,但這涉及有多少個輸入句柄可以處於活動狀態。即使您打開隊列以進行獨佔輸入,也可以有多個線程寫入它。
另外,截至2011年9月,WMQ的v6.x將會報廢。現在開始計劃讓v7繼續保留在受支持的版本上。如果您正在使用WMQ客戶端連接,請升級客戶端以及QMgr。 v7客戶端可與v6 QMgr正常工作,並可獨立升級。當然,它與v6.x QMgr一起使用時僅支持v6功能。您可以下載v7客戶端爲SupportPac MQC7。
相關問題
- 1. 我們可以在QuickBlox中向離線用戶發送系統消息嗎?
- 2. 我可以發送多少條消息到隊列?
- 3. 我們可以使用websockets發送遠程密鑰事件嗎?
- 4. 我們可以在多線程環境中使用Hashmap嗎?
- 5. 我們可以向窗口服務發送窗口消息嗎
- 6. 我們可以使用System.Data.OracleClient將List <>發送到Oracle存儲過程嗎?
- 7. 我們可以在我們的matlab程序中使用「點」嗎?
- 8. 我們可以在優先隊列中使用字符值嗎?
- 9. 我可以使用Boost消息隊列進行線程通信嗎
- 10. 我可以直接向隊列發送消息請求嗎?
- 11. NATS發佈者可以將單個消息發送到多個隊列嗎?
- 12. 是否可以使用STOMP將消息發送到多個隊列?
- 13. 我應該使用消息隊列嗎?
- 14. 如何使用rabbitMQ將消息發送到消息隊列?
- 15. Java:將消息發送到多線程的JMS隊列
- 16. 我們可以在Amazon SQS fifo隊列中使用特定的MessageGroupId獲取隊列消息嗎?
- 17. 我可以監視線程的消息隊列的大小嗎?
- 18. 我可以使用高級消息隊列協議(AMQP)嗎?
- 19. 我們可以使用asp.net和c#從localhost發送郵件嗎?
- 20. 我們可以讓rabbitmq隊列不處理消息
- 21. 我們可以通過Android GCM向所有註冊用戶發送消息嗎?
- 22. 我們可以在PL/SQL中使用線程嗎?
- 23. 無論線程庫如何,我們可以使用Mutex類嗎?
- 24. 即使應用程序在iphone sdk中關閉,我們可以發送消息給用戶嗎?
- 25. 我們可以在Spring WS中使用多個消息工廠嗎?
- 26. 我們可以使用JasperReports和AngularJS嗎?
- 27. 我們可以使用AJAX和XHTML嗎?
- 28. 我可以使用SynchronizationContext將工作發佈或發送到當前正在運行消息泵的線程嗎?
- 29. 使用Laravel的隊列發送消息
- 30. 我們可以使用Ember數據使用多態關係嗎?
我想我沒有把問題正確..我正在寫一個Java程序來連接隊列和發送消息。並試圖瞭解是否可以使用多線程方式將消息發送到遠程IBMMQ服務器上的同一隊列。 – user412918 2010-08-06 14:02:33
是的。我就是這樣解釋這個問題的。我已經更新了答案,以解釋許多線程都需要自己的連接,並提供了一個指向討論此主題的手動部分的鏈接。 – 2010-08-07 15:26:17