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-addressdead 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 ワイルドカード構文 を参照してください。