メッセージ駆動型 Bean の代わりにセッション Bean を使用しないのはなぜでしょうか?

StackOverflow https://stackoverflow.com/questions/3837723

質問

なぜメッセージ駆動型 Bean の代わりにセッション Bean を使用しないのかと疑問に思います。

EJB からリモート メソッドを呼び出すことができるのであれば、なぜわざわざメッセージ駆動型 Bean (セッション Bean よりも開発が難しい) を使ってメッセージを送受信する必要があるのでしょうか。

メッセージ駆動型 Bean はどのようなシナリオで役立ちますか?

役に立ちましたか?

解決

なぜメッセージ駆動型 Bean の代わりにセッション Bean を使用しないのかと疑問に思います。

うーん、これらは同じ目的を果たしません。メッセージ駆動型 Bean を使用すると、Java EE アプリケーションがメッセージを非同期に処理できるようになります。

EJB からリモート メソッドを呼び出すことができるのであれば、なぜわざわざメッセージ駆動型 Bean (セッション Bean よりも開発が難しい) を使ってメッセージを送受信する必要があるのでしょうか。

MDB は非同期性と疎結合を提供するため、状況によってはこれが必要になる可能性があります。

  • 長時間実行されるジョブの場合
  • リソースが常に利用可能であるとは限らない場合
  • 処理を並列化したい場合

ところで、私は個人的に、MDB が開発するのが最も簡単な Enterprise Bean であると常々思っています。

メッセージ駆動型 Bean はどのようなシナリオで役立ちますか?

上記を参照。

こちらも参照

他のヒント

メッセージ駆動型Beanは、JMSキューの非同期のとは異なり、エンティティ/セッションBeanに耳を傾けます。

処理は、メッセージがキューに到着したときにのみ起こるように

これはサーバリソースをブロックしません。

Javaのフォーラムやサイトの負荷以外に、ウィキペディアはMDBには、便利な

で来るユースケースの良いセットを持っています

http://en.wikipedia.org/wiki/Enterprise_JavaBean#Message_driven_beansする

の両方が異なる目的を果たしています。

1)あなただけのリモートメソッドの使用のためにそれを使用したいならば、単に

セッションBeanを使用します

2)が、responce / matersない結果場合は、後でメッセージは、キューを作成しているとして、それを動作させるために、メッセージを設定するには、JMSのために行く、あなたの母校です。しかしもパフォーマンスの問題が存在します。

uはその後、ちょうどメソッドの使用を持っている、それは軽量BeanがあるとしてだけでセッションBeanを使用する必要がある場合。そして、それは良いパフォーマンスを与えてます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top