0

メッセージングシステム/メッセージ処理の場合-MDBを使用します。エンティティBeanまたはセッションBeanは使用しないでください。理由を教えてください。

AdvRWに感謝し
ます

4

1 に答える 1

0

MDBはメッセージを受け入れるように設計されていますが、他のメッセージは受け入れません。古いSunチュートリアルからですが、最新バージョンでも同じです

メッセージ駆動型BeanとセッションおよびエンティティーBeanの最も明らかな違いは、クライアントがインターフェースを介してメッセージ駆動型Beanにアクセスしないことです。インターフェイスについては、「インターフェイスを使用したクライアントアクセスの定義」セクションで説明しています。セッションまたはエンティティBeanとは異なり、メッセージ駆動型BeanにはBeanクラスのみがあります

セッションBeanを使用すると、JMSメッセージを送信し、非同期ではなく同期的に受信できます。サーバーリソースの拘束を回避するために、サーバー側コンポーネントで同期受信のブロックを使用しないでください。一般に、JMSメッセージは同期して送受信しないでください。メッセージを非同期で受信するには、メッセージ駆動型Beanを使用します。

つまり、セッションBeanでは、Beanが呼び出されたときにのみメッセージを受信できます。アプリサーバーは、メッセージが受信された宛先(キューまたはトピック)に接続されたMDBのonMessageメソッドを自動的に呼び出します。これは、MDBが利用可能になるとすぐに各メッセージを処理することが保証されることを意味します。これは、セッションBeanでは保証できません。

于 2012-07-01T09:57:06.717 に答える