メッセージングシステム/メッセージ処理の場合-MDBを使用します。エンティティBeanまたはセッションBeanは使用しないでください。理由を教えてください。
AdvRWに感謝し
ます
MDBはメッセージを受け入れるように設計されていますが、他のメッセージは受け入れません。古いSunチュートリアルからですが、最新バージョンでも同じです
メッセージ駆動型BeanとセッションおよびエンティティーBeanの最も明らかな違いは、クライアントがインターフェースを介してメッセージ駆動型Beanにアクセスしないことです。インターフェイスについては、「インターフェイスを使用したクライアントアクセスの定義」セクションで説明しています。セッションまたはエンティティBeanとは異なり、メッセージ駆動型BeanにはBeanクラスのみがあります
と
セッションBeanを使用すると、JMSメッセージを送信し、非同期ではなく同期的に受信できます。サーバーリソースの拘束を回避するために、サーバー側コンポーネントで同期受信のブロックを使用しないでください。一般に、JMSメッセージは同期して送受信しないでください。メッセージを非同期で受信するには、メッセージ駆動型Beanを使用します。
つまり、セッションBeanでは、Beanが呼び出されたときにのみメッセージを受信できます。アプリサーバーは、メッセージが受信された宛先(キューまたはトピック)に接続されたMDBのonMessageメソッドを自動的に呼び出します。これは、MDBが利用可能になるとすぐに各メッセージを処理することが保証されることを意味します。これは、セッションBeanでは保証できません。