4.20. 配信されていないメッセージを dead letter アドレスへ移行
クライアントにメッセージの配信に失敗した場合は、ブローカーがメッセージの配信を継続しようとしない場合があります。無限配信を試行するのを防ぐために、dead letter address と 1 つ以上の dead letter queuesを定義できます。指定の数の配信試行後、ブローカーは元のキューから未配信メッセージを削除し、そのメッセージを設定済みの dead letter アドレスに送信します。システム管理者は、デッド文字キューから未配信メッセージを後で消費してメッセージを検査できます。
指定のキューに dead letter アドレスを設定しない場合、ブローカーは指定された数の配信試行後にキューから未配信メッセージを完全に削除します。
dead letter キューから消費される配信されていないメッセージには、以下のプロパティーがあります。
_AMQ_ORIG_ADDRESS
- メッセージの元のアドレスを指定する string プロパティー
_AMQ_ORIG_QUEUE
- メッセージの元のキューを指定する string プロパティー
4.20.1. dead letter アドレスの設定 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順は、dead letter アドレスと関連する dead letter キューを設定する方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 キュー名と一致する
<address-setting>
要素で、dead letter のアドレス名と配信試行回数の最大値を設定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow dead-letter-address
dead letter アドレスの名前。この例では、ブローカーは未配信メッセージをキュー exampleQueue から dead letter address(DLA) に移動します。
注記<address-setting>
要素のmatch
属性には、ワイルドカード式を指定できます。ワイルドカード式を使用すると、<address-setting>
要素に設定された dead letter 設定を一致する一連のアドレスに関連付ける場合に便利です。max-delivery-attempts
-
配信不能メッセージを設定済みの dead letter アドレスに移動するまでの、ブローカーによる配信試行の最大数。この例では、ブローカーは配信に失敗した 3 回失敗した後、未配信メッセージを dead letter address に移動します。デフォルト値は
10
です。ブローカーが再配信の試行を無限にするには、-1
の値を指定します。
addresses
セクションに、dead letter アドレス (DLA) のaddress
要素を追加します。dead letter キューを dead letter アドレスに関連付けるには、queue
の名前を指定します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
上記の設定では、DLQ という名前の dead letter キューを dead letter アドレス (DLA) に関連付けます。
関連情報
- アドレス設定でワイルドカードを使用する方法の詳細は、AMQ Broker ワイルドカード構文 を参照してください。