4.13.2. デッドレターキューの自動作成
一般的なユースケースは、元のアドレスに従って配信されていないメッセージを分離することです。たとえば、stocks
と呼ばれるアドレスから、DLQ.stocks
という関連するデッドレターキューを持つ DLA.stocks
という名前のデッドレターキューに配信されていないメッセージをルーティングすることがあります。同様に、orders と呼ばれるアドレスから DLA.orders
という
デッドレターアドレスに配信されていないメッセージをルーティングする可能性があります。
このタイプのルーティングパターンにより、未配信のメッセージを追跡、検査、および管理が容易になります。ただし、このようなパターンは、主に自動作成されたアドレスおよびキューを使用する環境に実装するのが困難です。このタイプの環境のシステム管理者は、アドレスおよびキューを手動で作成するのに必要な追加の作業を必要としない可能性があります。
解決策として、以下に示すように、未配信メッセージを処理するよう addressees および キューを自動的に作成するようにブローカーを設定できます。
前提条件
- キューまたはキューのセットにデッドレターアドレスがすでに設定されている。詳細は、「デッドレターアドレスの設定」 を参照してください。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 一致したキューまたはキューのセットのデッドレターアドレスを定義するために追加した
<address-setting>
要素を見つけます。以下に例を示します。<configuration ...> <core ...> ... <address-settings> ... <address-setting match="exampleQueue"> <dead-letter-address>DLA</dead-letter-address> <max-delivery-attempts>3</max-delivery-attempts> </address-setting> ... <address-settings> <configuration ...>
<address-setting>
要素に、ブローカーに対してデッドレターリソース (アドレスおよびキュー) を自動的に作成し、これらのリソースに名前を付ける設定項目を追加します。以下に例を示します。<configuration ...> <core ...> ... <address-settings> ... <address-setting match="exampleQueue"> <dead-letter-address>DLA</dead-letter-address> <max-delivery-attempts>3</max-delivery-attempts> <auto-create-dead-letter-resources>true</auto-create-dead-letter-resources> <dead-letter-queue-prefix>DLQ.</dead-letter-queue-prefix> <dead-letter-queue-suffix></dead-letter-queue-suffix> </address-setting> ... <address-settings> <configuration ...>
auto-create-dead-letter-resources
ブローカーがデッドレターアドレスおよびキューを自動的に作成し、未配信メッセージを受信するかどうかを指定します。デフォルト値は
false
です。auto-create-dead-letter-resources
がtrue
に設定されている場合、ブローカーはデッドレターアドレスと関連するデッドレターキューを定義する<address>
要素を自動的に作成します。自動作成された<address>
要素の名前は、<dead-letter-address>
に指定する name の値と一致します。ブローカーが自動作成された
<address>
要素で定義するデッドレターキューには、multicast
ルーティングタイプがあります。デフォルトでは、ブローカーがデッドレターキューに名前を付け、未達のメッセージの元のアドレス (stocks
など) を照合します。ブローカーは、
_AMQ_ORIG_ADDRESS
プロパティーを使用するデッドレターキューのフィルターも定義します。このフィルターは、デッドレターキューが対応する元のアドレスに送信されるメッセージのみを受け取るようになります。dead-letter-queue-prefix
ブローカーにより、自動作成されたデッドレターキューの名前に適用される接頭辞。デフォルト値は
DLQ
です。接頭辞値を定義するか、デフォルト値を維持する場合、デッドレターキューの名前は接頭辞と元のアドレス (
DLQ.stocks
など) の連結になります。dead-letter-queue-suffix
- ブローカーにより、自動作成されたデッドレターキューに適用される接尾辞。デフォルト値は定義されていません (つまり、ブローカーは接尾辞を適用しません)。