ActiveMQキューからメッセージを取得し、成功または失敗する可能性のあるJavaアプリケーションを実行しています。
アプリケーションが失敗した場合に備えて、メッセージをキューに残しておく必要があります。つまり、メッセージをデキューせずに保持します。
キューからメッセージを自動的に消去せずにメッセージを取得する方法はありますか?
キューからのフェッチやキューからの消去などのアトム操作はありますか?
ありがとう。
メッセージの自動確認を無効にし、作業が完了したら手動でmessage.acknowledge()を呼び出します。例外がスローされ、message.acknowlege()が呼び出されない場合、AMQはメッセージの配信を再試行します。すべての試行が失敗した場合、メッセージは最終的にデッドレターキューに入れられます。この動作は構成できます。
もう1つの方法は、QueueBrowserを使用することです。これにより、「メッセージを削除せずにキュー上のメッセージを見る」ことができます。ただし、これは検査の目的でより役立ちます。説明したセマンティクスから、mbelowの答えが正しい選択のようです。