7

キューの MessageConsumer オブジェクトに messageListener を設定すると、内部で実際に何が起こるか。MessageConsumer オブジェクトはバックグラウンドで何らかのポーリングを行いますか? それとも、これは JMS サーバーによって行われる実際のプッシュですか?

Java Message Service (O'Reilly Java Series) David A. Chappell、Richard Monson-Haefel、Mark Richards 共著、p10 第 1 章: ポイントツーポイント

ポイント ツー ポイント メッセージング モデルは、伝統的にプルベースまたはポーリング ベースのモデルであり、メッセージはクライアントに自動的にプッシュされるのではなく、キューから要求されます。

http://docs.oracle.com/javaee/1.4/tutorial/doc/JMS4.html#wp79175

メッセージ配信が開始されると、JMS プロバイダーは、メッセージが配信されるたびにメッセージ リスナーの onMessage メソッドを自動的に呼び出します。

ありがとう、コッド

4

1 に答える 1

1

この二つは矛盾しません。P2P は本質的にプルベースであり、プロデューサーによって送信されたメッセージを読み取るのは受信者の責任です。2番目の引用で言及した onMessage() メソッドは、プルを開始するために使用される通知メカニズムです。これらのバリエーションは、Java チュートリアル のこの章の例のように、JMS メッセージを受信する同期モードと非同期モードとも呼ばれます。

于 2012-04-11T15:52:05.817 に答える