2.2. Apache ActiveMQ Artemis コア API と JMS 宛先

JMS 宛先が Apache ActiveMQ Artemis アドレスにマップされる方法を簡単に説明します。

Apache ActiveMQ Artemis コアは JMS に依存しません。JMS トピックの概念はありません。JMS トピックは、0 個以上のキューがバインドされたアドレス (トピック名) としてコアに実装されます。このアドレスにバインドされる各キューが、トピックサブスクリプションを表します。同様に、JMS キューは、JMS キューを表す単一のキューがバインドされるアドレス (JMS キュー名) として実装されます。

通常、すべての JMS キューは、コアキュー名の先頭に文字列 jms.queue が付加されたコアキューにマップさ れます。たとえば、orders.europe の名前を持つ JMS キューが、jms.queue.orders.europe の名前でコアキューにマップされます。コアキューがバインドされるアドレスもコアキュー名で指定されます。

JMS トピックの場合、サブスクリプションを表すキューがバインドされるアドレスは、文字列 jms.topic. を JMS トピックの名前の先頭に付加して指定されます。たとえば、news.europe という名前の JMS トピックは、コアアドレス jms.topic.news.europe にマップされます。

つまり、orders.europe という名前の JMS キューへの JMS メッセージを送信する場合は、サーバーを介してアドレス jms.queue.orders.europe にバインドされるコアキューにルーティングされます。news.europe という名前の JMS トピックへの JMS メッセージを送信する場合は、サーバーを介してアドレス jms.topic.news.europe にバインドされるコアキューにルーティングされます。

名前が orders.europe の JMS キューの設定を行うには、対応するコアキュー jms.queue.orders.europe を設定する必要があります。

<!-- expired messages in JMS Queue "orders.europe" will be sent to the JMS Queue "expiry.europe" -->
<address-setting match="jms.queue.orders.europe">
   <expiry-address>jms.queue.expiry.europe</expiry-address>
   ...
</address-setting>