You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Balint Bertalan <be...@gmail.com> on 2021/11/19 11:01:16 UTC

Message filtering based on application-property

Dear Qpid Proton users!

I have multiple C++ applications connecting to a message broker, to the
same queue. I'd like to filter messages based on a value of one field in
the application-property map. Every message has a unique "application_id"
field in its application-property map and would like to consume those
messages from the queue which belong to a particular consumer (identified
by this application_id). I know there is a filtering mechanism available,
like described in the example selected_recv.cpp, however I don't know if
this picks the key from the application-property map or from the property
section (following that example none of my consumers received any message).
Furthermore, what's the proper syntax/semantics of a filtering expression?
Thank you!

Kind regards,
Balint Bertalan

Re: Message filtering based on application-property

Posted by Robbie Gemmell <ro...@gmail.com>.
Its not really possible to guide fully from the details you have
given, as the answer may be likely to depend on your server (which is
what would be interpreting and doing any filtering, assuming it
supports that), its setup, its behaviour with selectors, the specific
values you are using, and perhaps even other stuff you are doing.
However, quite generally based on what is here...

Typically its filtering the application-properties primarily, and
often uses SQL-like syntax along the lines of the JMS selectors.

So for example if your application_id application property were a
string value as the examples receiver + sender use, perhaps try
something like follows (or if its e.g a number and not a string, then
you wouldnt 'quote' the value).

"application_id = 'value'"

On Fri, 19 Nov 2021 at 11:01, Balint Bertalan <be...@gmail.com> wrote:
>
> Dear Qpid Proton users!
>
> I have multiple C++ applications connecting to a message broker, to the
> same queue. I'd like to filter messages based on a value of one field in
> the application-property map. Every message has a unique "application_id"
> field in its application-property map and would like to consume those
> messages from the queue which belong to a particular consumer (identified
> by this application_id). I know there is a filtering mechanism available,
> like described in the example selected_recv.cpp, however I don't know if
> this picks the key from the application-property map or from the property
> section (following that example none of my consumers received any message).
> Furthermore, what's the proper syntax/semantics of a filtering expression?
> Thank you!
>
> Kind regards,
> Balint Bertalan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org