これをグーグルで検索しようとしましたが、成功しませんでした。を使用しAUTO_ACKNOWLEDGE
ていて、Java で記述されたコンシューマー クライアントを使用している場合、メッセージはいつ確認されますか? MessageListener
メソッドを含むを使用していますonMessage
。onMessage
確認応答は、完了前またはonMessage
完了後、または他の時点でサーバーに送り返されますか? 誰でも提供できるヘルプを事前に感謝します!
2 に答える
これを確認して ください(2020年以降、記事がオフラインになったときに使用されるWayback Machineリンク)
mode を使用すると、ハンドラーが戻ったAUTO_ACKNOWLEDGE
後、暗黙のうちに確認応答が常に最後に行われます。メッセージを受信するクライアントは、消費セッションでモードをonMessage()
指定することにより、保証されたメッセージの配信をより細かく制御できます。CLIENT_ACKNOWLEDGE
を使用するとCLIENT_ACKNOWLEDGE
、アプリケーションは確認応答が送信されるタイミングを制御できます。たとえば、アプリケーションはメッセージを確認できます。これにより、JMS プロバイダーの義務が軽減され、メッセージによって表されるデータのさらなる処理を実行できます。その鍵となるのは、リスト 1 に示すように、Message オブジェクトのacknowledge() メソッドです。
このacknowledge()
メソッドは、コンシューマーがメッセージを正常に受信したことを JMS プロバイダーに通知します。このメソッドは、確認プロセス中にプロバイダー エラーが発生した場合、クライアントに例外をスローします。プロバイダーに障害が発生すると、再配信のためにメッセージが JMS サーバーに保持されます。