2017-09-01 4 views
0

MDBには、Java EEコンテナによってonMessage()メソッドが呼び出され、メッセージが渡されます。Message Driven BeanはJMSメッセージを同期して処理できますか?

これは、クライアント(MDB)がトピックまたはキューで受信を呼び出す必要がなく、コンテナ/プロバイダが自動的にメッセージを配信するメッセージの非同期消費を可能にします。

メッセージの同期消費にMDBを使用できますか? PostConstructメソッドや、ある宛先のonMessageメソッドで接続を作成し、receive()を呼び出すことはできますか?

この大文字の可能性がある場合は、それから何か推測できますか?つまり、MDBは同期と非同期の両方のメッセージを処理できますか?

答えて

0

私はあなたが知っていると仮定します。あなたが望むようoracle tutorial to mdbs

とすぐにBeanがトリガーされたとして、それがどのリソースにJMS-インタフェースを使用することができます。さらにメッセージを受信したり、トピックにメッセージを追加したりできます。

しかし、トピックまたはキューのメッセージによって最初にトリガーされることに依存して、MDBが定義されます。 メッセージがキューに入れられるとすぐにMDBをトリガーしたい場合は、onMessageなどのBeanを直接呼び出してみてください。

If this upper case is a possibility then what can we deduce from 
it? That is MDB can handle messages both synchronously and asynchronously? 

MDBは、最初は非同期にトリガされます。これがMDBの主な特徴です。後でほとんど正常な豆がそれに影響することはありません。

さらに: MDBが同期または非同期で使用されるかどうかは、基礎となるメッセージングフレームワークによって決まります。 EJBでは、非同期で定義されます。 MDBは通常、もともとメッセージを送信したクライアントとは別のスレッドで呼び出されます。たとえば、mockrunner-jmsはメモリ内のメッセージングフレームワークであり、メッセージングをテストしようとするときに使用でき、同じスレッドで同期してコンシューマを呼び出すように設定できます。

関連する問題