Hi all, We are going to implement message selectors support [1] into WSO2 Message Broker where a message consumer is allowed to specify the messages it is interested by using a selector string and the broker (JMS provider) does the filtering of messages according to that query. The syntax of the JMS selector expression is based on a subset of SQL92, mentioned here [2].
Message selectors can be implemented either using the client-side or server-side. As the first try i have tried with filtering the messages in the client-side where the filtering happens after the message is dispatched into client side. However we had some considerable issues with this method since the messages which were rejected by the consumer's selector cannot be re-delivered to other consumers who do not have filters, and those messages were stuck in queue. Therefore since this was not possible to be handled in the client-side we moved the implementation server-side. Therefore with the current implementation at server side when the messages are sending out to subscribers we check whether the message matches the filters and if so that will be given out to the subscriber. If not that message will be removed from already read messages, hence it can be given to another matching subscriber in the next round. I will be updating this thread with the progress of the implementation. The plan is to send this out with 2.2.0 version, however if takes more time this will be definitely available with MB 3.0.0 version. Any feedback/suggestions are welcome. Thanks! Ishara [1] http://docs.oracle.com/cd/E19798-01/821-1841/bncer/index.html [2] http://www.novell.com/documentation/extend5/Docs/help/Composer/books/JMSAppendixB.html -- Ishara Premasada Software Engineer, WSO2 Inc. http://wso2.com/ *Blog : http://isharapremadasa.blogspot.com/ <http://isharapremadasa.blogspot.com/>Twitter : https://twitter.com/ishadil <https://twitter.com/ishadil>Mobile : +94 714445832*
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev