4.2. アドレスセットへのアドレス設定の適用
AMQ Broker では、ワイルドカード式を使用して一致するアドレス名を表すことで、address-setting
要素に指定された設定をアドレスセットに適用することができます。
以下のセクションでは、ワイルドカード式の使用方法を説明します。
4.2.1. AMQ Broker ワイルドカード構文
AMQ Broker は、アドレス設定でワイルドカードを表す特定の構文を使用します。ワイルドカードは、セキュリティー設定やコンシューマーの作成時に使用することもできます。
-
ワイルドカード式には、ピリオド (
.
) で区切られた単語が含まれます。 数字記号 (
#
) およびアスタリスク (*
) 文字には特別な意味があり、以下のように単語の代わりに使用できます。- 数字記号は、ゼロ以上の単語のシーケンスの一致を意味します。式の最後に使用します。
- アスタリスク文字は単一の単語と一致するを意味します。式内のどこかにこの変数を使用します。
マッチングは文字による文字は実行されませんが、各区切り文字境界では文字ごとに一致します。たとえば、名前に my
を持つキューと一致するよう設定された address-setting
要素は、myqueue
という名前のキューと 一致しません。
複数の address-setting
要素がアドレスと一致する場合、ブローカーオーバーレイ設定は、ベースラインとして最も具体的な一致の設定を使用します。リテラル式はワイルドカードより固有で、アスタリスク (*
) は数値記号 (#
) より具体的なものです。たとえば、my.destination
と my.*
の両方がアドレス my.destination
と一致します。この場合、ワイルドカード式はリテラルよりも具体的なため、ブローカーは最初に my.*
にある設定を適用します。次に、ブローカーは my.destination
アドレス設定要素の設定をオーバーレイし、my.*
と共有される設定を上書きします。たとえば、以下の設定では、my .destination
に関連付けられたキューは max-delivery-attempts
を 3
に設定し、last-value-queue
を false
に設定します。
<address-setting match="my.*"> <max-delivery-attempts>3</max-delivery-attempts> <last-value-queue>true</last-value-queue> </address-setting> <address-setting match="my.destination"> <last-value-queue>false</last-value-queue> </address-setting>
以下の表に示す例は、ワイルドカードを使用してアドレスセットを照合する方法を示しています。
例 | 説明 |
---|---|
|
|
|
|
|
|
|
|
4.2.2. ブローカーのワイルドカード構文の設定
以下の手順では、ワイルドカードアドレスに使用される構文をカスタマイズする方法を説明します。
手順
-
<broker_instance_dir>/etc/broker.xml
設定ファイルを開きます。 以下の例のように、
<wildcard-addresses>
セクションを設定に追加します。<configuration> <core> ... <wildcard-addresses> // <enabled>true</enabled> // <delimiter>,</delimiter> // <any-words>@</any-words> // <single-word>$</single-word> </wildcard-addresses> ... </core> </configuration>
enabled
-
true
に設定すると、カスタム設定を使用するようにブローカーに指示します。 delimiter
-
デフォルトの
.
の代わりにdelimiter
として使用するカスタム文字を指定します 。 any-words
-
any-words
の値として提供された文字は、ゼロ以上の単語のシーケンスに一致し、デフォルトの#
を置き換えます。式の最後にこの文字を使用します。 single-word
-
single-word
の値として提供された文字は、単一の単語の照合に使用され、デフォルトの*
を置き換えます。この文字は式内の任意の場所を使用します。