Hello, 
I managed to get this message selection working. Basically, the queue address 
need not be enclosed in ' '. So, hopefully the filtering for queue is working 
now. I will get a chance to test this on Monday with the other instance.

However, we might still need to solve the problem for topics where messages are 
broadcast and we would like all subscribers to receive them. In case of 
broadcasts, we do not receive any uniqueAppID. They are available in specific 
topic address. Different instances would need these broadcasts. So, we would 
want qpid to put them in all receivers which subscribed to that topic. Please 
can you help how this can be achieved or in case of topic, does the qpid by 
default copies the message in all the subscribed receivers. 

Best Regards,
Rahul

-----Original Message-----
From: rahul.sin...@morganstanley.com <rahul.sin...@morganstanley.com> 
Sent: 01 April 2022 11:03
To: users@qpid.apache.org
Subject: <Unverified Sender>RE: QPID C++ Queue handling


I tired various combination to pass the information to selector however I keep 
on getting same error. Please see below code and Protocol traces in case there 
is something you can quickly spot.

Code -
Map selector;
std::string uniqueAppIdSelector = "\"uniqueAppID\"='" + _appId + "'"; 
selector["selector"] = uniqueAppIdSelector; Map options; options["link"] = 
selector; Address address(resp_queue, "", options, "'queue'"); //Address 
address(resp_queue, "", options, "'queue'"); //Address address(resp_queue, "", 
options); _receiver = _session.createReceiver(address);

In the PROTOCCOL TRACE, I see - filter={:selector=@77567109365764 
""uniqueAppID"= 'XXXXX_UNIQUE_APP_ID'"}, capabilities=:"'queue'"]. I tried 
other combinations like

Where I pass queue as "queue" without ' '. //Address address(resp_queue, "", 
options, "queue"); PROTOCOL TRACE -
filter={:selector=@77567109365764 ""uniqueAppID"= 'XXXXX_UNIQUE_APP_ID'"}, 
capabilities=:queue]

OR without passing type argument to address. //Address address(resp_queue, "", 
options);
filter={:selector=@77567109365764 ""uniqueAppID"='XXXXX_UNIQUE_APP_ID'"}]

[Protocol] trace [XXXXX_UNIQUE_APP_ID]: FRAME: 0 -> @attach(18) 
[name="'XXXXX.ResQueue_L'_c2928ec1-0937-4f84-a61f-90712c837f1a", handle=1, 
role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) 
[address="'XXXXX.ResQueue_L'", durable=0, timeout=0, dynamic=false, 
filter={:selector=@77567109365764 ""uniqueAppID"= 'XXXXX_UNIQUE_APP_ID'"}, 
capabilities=:"'queue'"], target=@target(41) [address="'XXXXX.ResQueue_L'", 
durable=0, timeout=0, dynamic=false], initial-delivery-count=0, 
max-message-size=0]

2022-04-01 10:18:16 [Protocol] trace [XXXXX_UNIQUE_APP_ID]: FRAME: 0 <- 
@detach(22) [handle=1, closed=true, error=@error(29) 
[condition=:"amqp:unauthorized-access", description="AMQ119015: not authorized 
to create consumer, AMQ229032: User: XXXXX_USER does not have 
permission='CREATE_ADDRESS' on address 'XXXXX.ResQueue_L'"]]

Best Regards,
Rahul

-----Original Message-----
From: Robbie Gemmell <robbie.gemm...@gmail.com>
Sent: 31 March 2022 16:33
To: users <users@qpid.apache.org>
Subject: Re: QPID C++ Queue handling

 Its hard to say much without knowing exactly what you did, the linked thread 
has a few different things in it.

The error suggests you are using Artemis and it is trying (and failing due to 
permissions) to create an Address, which I wouldnt really expect if you are 
consuming from an already known response queue, one that I would assume already 
existed.

You might need to ensure the broker actually treats the things as being an 
'anycast' queue and treats the consumer as a regular queue consumer, as I know 
Artemis typically defaults to treating things as 'multicast' for more 
topic-like behaviour, which might be a problematic if you have different 
consumers with different selectors.
You can do that either by ensuring the address+queue definition is anycat, or 
changing the broker side address settings [1][2] so anything auto-created is 
considered 'anycast', or you could alternatively add a 'queue' type hint into 
the consumer by setting the type option into the consumer address string when 
creating the receiver (from other threads I think "my-queue; { node:{ type: 
queue }}" is the format of that).

[1] 
https://activemq.apache.org/components/artemis/documentation/latest/address-model.html
[2] 
https://activemq.apache.org/components/artemis/documentation/latest/address-settings.html



On Thu, 31 Mar 2022 at 13:47, rahul.sin...@morganstanley.com 
<rahul.sin...@morganstanley.com> wrote:
>
> Many thanks Gordon. I tried using the selector while creating the 
> Receiver for response queue (as per the example given
> https://lists.apache.org/thread/95ozl3hxf0cqzt0nxgbvwroddx39kq1w)
> However, I get below exception -
> std::exception Link detached by peer with amqp:unauthorized-access: 
> AMQ119015: not authorized to create consumer, AMQ229032: User: FOOBAR does 
> not have permission='CREATE_ADDRESS' on address 'XXXXX.ResQueue_L'
>
> Best Regards,
> Rahul
>
> -----Original Message-----
> From: Gordon Sim <g...@redhat.com>
> Sent: 31 March 2022 12:06
> To: users@qpid.apache.org
> Subject: Re: QPID C++ Queue handling
>
> On Thu, Mar 31, 2022 at 11:30 AM rahul.sin...@morganstanley.com 
> <rahul.sin...@morganstanley.com> wrote:
> > 2) For the longer term/better solution, I will start looking into selector. 
> > Is this within qpid C++ or proton layer. Any quick pointer will be highly 
> > appreciated.
>
> For proton C++:
> https://github.com/apache/qpid-proton/blob/main/cpp/examples/selected_
> recv.cpp
>
> For example with the old qpid::messaging API see e.g.
> https://lists.apache.org/thread/95ozl3hxf0cqzt0nxgbvwroddx39kq1w
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For 
> additional commands, e-mail: users-h...@qpid.apache.org
>
>
> ----------------------------------------------------------------------
> ----------
> NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions 
> or views contained herein are not intended to be, and do not constitute, 
> advice within the meaning of Section 975 of the Dodd-Frank Wall Street Reform 
> and Consumer Protection Act. If you have received this communication in 
> error, please destroy all electronic and paper copies and notify the sender 
> immediately. Mistransmission is not intended to waive confidentiality or 
> privilege. Morgan Stanley reserves the right, to the extent permitted under 
> applicable law, to monitor electronic communications. This message is subject 
> to terms available at the following link: 
> http://www.morganstanley.com/disclaimers  If you cannot access these links, 
> please notify us by reply message and we will send the contents to you. By 
> communicating with Morgan Stanley you consent to the foregoing and to the 
> voice recording of conversations with personnel of Morgan Stanley.
>
> You may have certain rights regarding the information that Morgan Stanley 
> collects about you.  Please see our Privacy Pledge 
> https://www.morganstanley.com/privacy-pledge for more information about your 
> rights.

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


--------------------------------------------------------------------------------
NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or 
views contained herein are not intended to be, and do not constitute, advice 
within the meaning of Section 975 of the Dodd-Frank Wall Street Reform and 
Consumer Protection Act. If you have received this communication in error, 
please destroy all electronic and paper copies and notify the sender 
immediately. Mistransmission is not intended to waive confidentiality or 
privilege. Morgan Stanley reserves the right, to the extent permitted under 
applicable law, to monitor electronic communications. This message is subject 
to terms available at the following link: 
http://www.morganstanley.com/disclaimers  If you cannot access these links, 
please notify us by reply message and we will send the contents to you. By 
communicating with Morgan Stanley you consent to the foregoing and to the voice 
recording of conversations with personnel of Morgan Stanley.

You may have certain rights regarding the information that Morgan Stanley 
collects about you.  Please see our Privacy Pledge 
https://www.morganstanley.com/privacy-pledge for more information about your 
rights.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org For additional 
commands, e-mail: users-h...@qpid.apache.org


--------------------------------------------------------------------------------
NOTICE: Morgan Stanley is not acting as a municipal advisor and the opinions or 
views contained herein are not intended to be, and do not constitute, advice 
within the meaning of Section 975 of the Dodd-Frank Wall Street Reform and 
Consumer Protection Act. If you have received this communication in error, 
please destroy all electronic and paper copies and notify the sender 
immediately. Mistransmission is not intended to waive confidentiality or 
privilege. Morgan Stanley reserves the right, to the extent permitted under 
applicable law, to monitor electronic communications. This message is subject 
to terms available at the following link: 
http://www.morganstanley.com/disclaimers  If you cannot access these links, 
please notify us by reply message and we will send the contents to you. By 
communicating with Morgan Stanley you consent to the foregoing and to the voice 
recording of conversations with personnel of Morgan Stanley.

You may have certain rights regarding the information that Morgan Stanley 
collects about you.  Please see our Privacy Pledge 
https://www.morganstanley.com/privacy-pledge for more information about your 
rights.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org

Reply via email to