第13章 メッセージのフィルタリング
AMQ Broker は、SQL 92 式構文のサブセットに基づいて強力なフィルター言語を提供します。フィルター言語は JMS セレクターに使用されるものと同じ構文を使用しますが、事前定義された識別子は異なります。以下の表は、AMQ Broker メッセージに適用される識別子を示しています。
識別子 | 属性 |
---|---|
AMQPriority |
メッセージの優先度。メッセージの優先度は、 |
AMQExpiration | メッセージの有効期限。値は長い整数です。 |
AMQDurable |
メッセージが永続化されているかどうか。値は文字列です。有効な値は |
AMQTimestamp | メッセージが作成された時点のタイムスタンプです。値は長い整数です。 |
AMQSize |
メッセージの |
コアフィルター式で使用される他の識別子はメッセージのプロパティーであると考えられます。JMS メッセージのセレクター構文に関するドキュメントは、Java EE API を参照してください。
13.1. フィルターを使用するようにキューを設定する
<broker_instance_dir> /etc/broker.xml
で設定するキューにフィルターを追加できます。フィルター式に一致するメッセージのみがキューに格納されます。
手順
filter
要素を希望のキュー
に追加し、要素の値として適用するフィルターを追加します。以下の例では、フィルターNEWS='technology'
がキューtechnologyQueue
に追加されます。<configuration> <core> ... <addresses> <address name="myQueue"> <anycast> <queue name="myQueue"> <filter string="NEWS='technology'"/> </queue> </anycast> </address> </addresses> </core> </configuration>