이 콘텐츠는 선택한 언어로 제공되지 않습니다.
6.4. Server-side Selectors
6.4.1. Select messages using a filter 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
MRG 3 supports selecting messages from a queue using a server-side selector. This allows you to specify a filter using a SQL-like syntax. This filter is applied to the headers and properties of messages on the server. Messages that match the filter are delivered to the client.
To use server-side selectors, specify a
selector in the link portion of the connection URL.
The following example will cause the server to select and deliver messages that have
green, red, or blue as the value of the color property:
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
queue_name;{link:{selector:"color in ('green', 'red', 'blue')"}}
The following examples demonstrate selectors to filter messages on various header properties:
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 and temporary syntax
With Python, selectors can be used by temporary syntax. For example, the C++ address with selector:
queue_name;{link:{selector:"myproperty = 1"}}
queue_name;{link:{selector:"myproperty = 1"}}
in Python is temporarily used as:
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
queue_name;{link:{'x-subscribe': {'arguments': {'x-apache-selector': "myproperty = 1"}}}}
The Java and server-side selectors
The Qpid Java client does not currently support server-side selectors, only JMS selectors. JMS selectors function differently than server-side selectors. Consult the JMS specification for more detail on JMS slectors.