6.4. サーバー側のセレクター
6.4.1. フィルターを使用したメッセージの選択 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
MRG 3 は、サーバー側のセレクターを使用してキューからメッセージを選択することをサポートします。これにより、SQL のような構文を使用してフィルターを指定できます。このフィルターは、サーバー上のメッセージのヘッダーおよびプロパティーに適用されます。フィルターに一致するメッセージはクライアントに配信されます。
サーバー側のセレクターを使用するには、接続 URL
selector
のリンク部分にを指定します。
以下の例は、、、
green
red
、またはをプロパティーの値 blue
としてサーバーを選択して配信し color
ます。
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
以下の例は、さまざまなヘッダープロパティーでメッセージをフィルターするセレクターを示しています。
queue_name;{link:{selector:"amqp.priority = 1"}} queue_name;{link:{selector:"amqp.priority IS BETWEEN 3 AND 6"}} queue_name;{link:{selector:"myflag AND amqp.redelivered"}} queue_name;{link:{selector:"msg_title LIKE '%news%'"}
queue_name;{link:{selector:"amqp.priority = 1"}}
queue_name;{link:{selector:"amqp.priority IS BETWEEN 3 AND 6"}}
queue_name;{link:{selector:"myflag AND amqp.redelivered"}}
queue_name;{link:{selector:"msg_title LIKE '%news%'"}
Python および一時構文
Python では、セレクターは一時構文で使用できます。たとえば、selector の C++ アドレスは以下のようになります。
queue_name;{link:{selector:"myproperty = 1"}}
queue_name;{link:{selector:"myproperty = 1"}}
Python では、以下のように一時的に使用されます。
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
Java およびサーバー側のセレクター
Qpid Java クライアントは現在サーバー側のセレクターをサポートしておらず、JMS セレクターのみをサポートします。JMS セレクターはサーバー側のセレクターとは異なります。JMS slector の詳細については、JMS 仕様を参照してください。