簡體   English   中英

如何在多線程應用程序中使用Java JMS會話?

[英]How to use Java JMS session in a multi Threaded Application?

我正在研究獨立的多線程應用程序,其中使用純JMS API通過P2P機制同步發送和接收消息。 當多個線程正在運行時,使用消費者對象(每個線程一個消費者對象)接收數據時拋出異常,並說IllegalStateException:會話已關閉。 我嘗試了以下兩種方法。

1)在單例類中創建連接和會話對象,並在發送和接收消息時使用這些對象。 同步發送和接收消息的代碼段。

2)創建SessionPool類(單個),在其中創建5個會話。 由於“我的應用程序”的線程池數限制為20,因此每個線程都會從sessionpool檢索會話,並在收到消息后返回會話。 這對於5個線程正常工作,后來拋出異常,稱會話已關閉。

請幫助我了解如何有效使用會話對象,而不必為每個線程創建一個會話。

您可能需要重新考慮您的體系結構。

JMS是在JMS提供者和JMS使用者之間進行通信的一種方式。 這更多是一種客戶端-服務器架構。 我不建議將其用於p2p。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM