2010-08-06 56 views

回答

1

絕對如此。您可以擁有與內存一樣多的CPU,並允許CPU使用。如果你想看到性能改進,每個線程都需要它自己的連接句柄。如果使用單個連接句柄,則來自多個線程的所有GET和PUT活動都將通過連接句柄進行同步。如果使用多個連接句柄,則GET和PUT活動可以並行進行。有關更多詳細信息,請參閱WMQ使用Java手冊中的Multithreaded programs

只要確保像MAXUPROCS這樣的操作系統內核設置被設置爲允許WMQ運行足夠的線程來接收連接並且像MAXHANDSMAXCHANNELS這樣的WMQ設置被調高以適應負載。請記住,工作單元是線程範圍的,因此每個線程獨立於其他的同步點 - 例如,當您在線程內發出COMMIT時,它只會承擔特定線程放置的消息,假設它具有專用連接。隊列有一個DEFSOPT(默認共享選項)的屬性,但這涉及有多少個輸入句柄可以處於活動狀態。即使您打開隊列以進行獨佔輸入,也可以有多個線程寫入它。

另外,截至2011年9月,WMQ的v6.x將會報廢。現在開始計劃讓v7繼續保留在受支持的版本上。如果您正在使用WMQ客戶端連接,請升級客戶端以及QMgr。 v7客戶端可與v6 QMgr正常工作,並可獨立升級。當然,它與v6.x QMgr一起使用時僅支持v6功能。您可以下載v7客戶端爲SupportPac MQC7

+0

我想我沒有把問題正確..我正在寫一個Java程序來連接隊列和發送消息。並試圖瞭解是否可以使用多線程方式將消息發送到遠程IBMMQ服務器上的同一隊列。 – user412918 2010-08-06 14:02:33

+1

是的。我就是這樣解釋這個問題的。我已經更新了答案,以解釋許多線程都需要自己的連接,並提供了一個指向討論此主題的手動部分的鏈接。 – 2010-08-07 15:26:17

相關問題