30

これをグーグルで検索しようとしましたが、成功しませんでした。を使用しAUTO_ACKNOWLEDGEていて、Java で記述されたコンシューマー クライアントを使用している場合、メッセージはいつ確認されますか? MessageListenerメソッドを含むを使用していますonMessageonMessage確認応答は、完了前またはonMessage完了後、または他の時点でサーバーに送り返されますか? 誰でも提供できるヘルプを事前に感謝します!

4

2 に答える 2

35

これを確認して ください(2020年以降、記事がオフラインになったときに使用されるWayback Machineリンク)

mode を使用すると、ハンドラーが戻ったAUTO_ACKNOWLEDGE後、暗黙のうちに確認応答が常に最後に行われます。メッセージを受信するクライアントは、消費セッションでモードをonMessage()指定することにより、保証されたメッセージの配信をより細かく制御できます。CLIENT_ACKNOWLEDGE

を使用するとCLIENT_ACKNOWLEDGE、アプリケーションは確認応答が送信されるタイミングを制御できます。たとえば、アプリケーションはメッセージを確認できます。これにより、JMS プロバイダーの義務が軽減され、メッセージによって表されるデータのさらなる処理を実行できます。その鍵となるのは、リスト 1 に示すように、Message オブジェクトのacknowledge() メソッドです。

このacknowledge()メソッドは、コンシューマーがメッセージを正常に受信したことを JMS プロバイダーに通知します。このメソッドは、確認プロセス中にプロバイダー エラーが発生した場合、クライアントに例外をスローします。プロバイダーに障害が発生すると、再配信のためにメッセージが JMS サーバーに保持されます。

于 2012-07-26T16:35:15.143 に答える