4.18. キューとアドレスの自動作成と削除
アドレスおよびキューを自動的に作成し、使用されなくなったら削除するように AMQ Broker を設定できます。これにより、クライアントが接続する前に各アドレスを事前に設定する必要がなくなります。
キューとアドレスの自動作成と削除は、address-setting
ごとに設定されます。設定は、address-setting
に一致する任意のアドレスまたはキューに適用されます。ワイルドカード構文を使用してアドレスとキューを address-setting
に一致させる方法は、アドレスの設定 を参照してください。
キューとアドレスの自動作成を無効にすると問題が発生する可能性があるため、お勧めしません。AMQ Broker は、activemq.#
パターンを使用して、アドレスとキューを自動作成できる必要があります。例については アドレス設定 の例を参照してください。
以下の表は、address -setting
を設定してキューとアドレス を自動的に作成し、削除する際に利用できる設定要素の一覧です。
address-setting を下記に設定したい場合 | この設定を追加してください |
---|---|
クライアントが存在しないアドレスにマッピングされたキューからメッセージを消費するか、または消費しようとするとアドレスを作成します。 |
|
クライアントがキューからメッセージを消費するか、または消費しようとするとキューを作成します。 |
|
キューがなくなったら、自動的に作成されたアドレスを削除します。 |
|
キューのコンシューマー 0 と 0 のメッセージがある場合に、自動作成されたキューを削除します。 |
|
クライアントが指定しない場合は、特定のルーティングタイプを使用します。 |
|
手順
BROKER_INSTANCE_DIR/etc/broker.xml
ファイルを編集し、自動作成および削除の address-setting
を設定します。以下の例では、前述の表に記載されているすべての設定要素を使用しています。
<configuration ...> <core ...> ... <address-settings> <address-setting match="activemq.#"> 1 <auto-create-addresses>true</auto-create-addresses> 2 <auto-delete-addresses>true</auto-delete-addresses> 3 <auto-create-queues>true</auto-create-queues> 4 <auto-delete-queues>true</auto-delete-queues> 5 <default-address-routing-type>ANYCAST</default-address-routing-type> 6 </address-setting> </address-settings> ... </core> </configuration>
- 1
- この
address-setting
に含まれる設定は、ワイルドカードactivemq.#
に一致するすべてのアドレスまたはキューに適用されます。ワイルドカード構文の使用の詳細は、AMQ Broker ワイルドカード構文 を参照してください。 - 2
- ブローカは、クライアントが要求したときに存在しないアドレスを作成します。
- 3
- 自動作成されたアドレスは、キューに関連付けられなくなった時点で削除されます。
- 4
- ブローカは、クライアントが要求したときに存在しないキューを作成します。
- 5
- 自動作成されたキューは、コンシューマーまたはメッセージがないと削除されます。
- 6
- クライアントが接続時にルーティングタイプを指定しない場合、ブローカーはアドレスにメッセージを配信する際に
ANYCAST
を使用します。デフォルト値はMULTICAST
です。ルーティングタイプの詳細は この章の冒頭 を参照してください。