第23章 キュー属性

キュー属性は、設定ファイルを使用するか、コア API を使用するかいずれかの方法で設定できます。本章では、各属性の設定方法と属性の影響について説明します。

23.1. 事前定義されたキュー

キューは、コアレベルまたは JMS レベルで設定により事前定義できます。最初に JMS レベルについて説明します。
JMS レベル

以下は、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml 設定ファイルで事前定義されたキューを示しています。

<queue name="selectorQueue">
   <entry name="/queue/selectorQueue"/>
   <selector string="color='red'"/>
   <durable>true</durable>
</queue>
<queue> のこの name 属性は、キューの名前を定義します。これを JMS レベルで行う場合は、命名規則に従い、コアキューの実際の名前が jms.queue.selectorQueue になるようにします。
必須の <entry> 要素は、キューを JNDI にバインドするために使用される名前を設定します。<queue> には、同じキューをさまざまな名前にバインドする複数の <entry> 要素を含めることができます。
オプションの <selector> 要素は、事前定義されたキューが持つ JMS メッセージセレクターを定義します。セレクターに一致するメッセージのみがキューに追加されます。<queue> から省略された場合、デフォルト値は null になります。
オプションの <durable> 要素はキューが永続化されたかどうかを指定します。<queue> から省略された場合、デフォルト値は true です。
コアレベル

キューは、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml ファイルにおいてコアレベルで事前定義できます。

<queues>     
   <queue name="jms.queue.selectorQueue">
      <address>jms.queue.selectorQueue</address>
      <filter string="color='red'"/>
      <durable>true</durable>
</queues>
これは、JMS 設定に非常に似ていますが、以下の例外があります。
  1. キューの名前属性が JMS の命名規則がないキューに対して使用された実際の名前になります。
  2. アドレス要素は、メッセージをルーティングするために使用されるアドレスを定義します。
  3. エントリー要素はありません。
  4. フィルターは、JMS セクレター構文ではなくコアフィルター構文 (12章フィルター表現 で説明) を使用します。