11

メッセージドリブンBeanの代わりにSessionBeanを使用してみませんか?

EJBからリモートメソッドを呼び出すことができるのなら、なぜメッセージ駆動型Bean(セッションBeanよりも開発が難しい)でメッセージを送受信するのが面倒なのですか?

メッセージ駆動型Beanが役立つシナリオはどれですか?

4

3 に答える 3

12

メッセージドリブンBeanの代わりにSessionBeanを使用してみませんか?

うーん、それらは同じ目的を果たしません。メッセージ駆動型Beanにより、JavaEEアプリケーションはメッセージを非同期的に処理できます。

EJBからリモートメソッドを呼び出すことができるのなら、なぜメッセージ駆動型Bean(セッションBeanよりも開発が難しい)でメッセージを送受信するのが面倒なのですか?

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

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

ちなみに、私は常にMDBが最も開発しやすいEnterpriseBeanであることに気づきました。

メッセージ駆動型Beanが役立つシナリオはどれですか?

上記を参照。

も参照してください

于 2010-10-01T09:32:38.753 に答える
2

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

メッセージがキューに到着したときにのみ処理が行われるため、これによってサーバーリソースがブロックされることはありません。

たくさんのJavaフォーラムやサイト以外に、ウィキペディアにはMDBが役立つ一連の優れたユースケースがあります。

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

于 2010-10-01T09:19:27.807 に答える
2

どちらも異なる目的を果たします。

1)リモートメソッドの使用のみに使用する場合は、SessionBeanを使用します

2)ただし、応答/結果が重要ではないが、後のメッセージが重要である場合は、キューを作成しているときにJMSを使用して、それを機能させ、メッセージを設定します。しかし、パフォーマンスの問題はそこにあります。

メソッドを使用する必要がある場合は、軽量BeanであるセッションBeanを使用してください。そしてそれは良いパフォーマンスを与えています。

于 2013-04-15T10:24:35.043 に答える