Thanks Robbie. I indeed need it to topics only. I tried the suggestion through 
the QPID C++ API by using the below code and when looking at QPID messages 
exchnages, durable is set as 2 (durable=2). Please can you confirm the source 
code below and the resulting AMQP messages imply that we have correctly set the 
durability option for topics.

    std::string exampleTopic = "XXXXX.topic";
    MapT selector;
    selector["name"] = exampleTopic;
    selector["durable"] = true;
    MapT options;
    options["link"] = selector;
    AddressT address(exampleTopic, "", options, "topic");
    _recv = _session.createReceiver(address);

[Protocol] trace [XXXXX_APP_ID]: FRAME: 0 -> @attach(18) [name="XXXXX.topic", 
handle=2, role=true, snd-settle-mode=2, rcv-settle-mode=0, source=@source(40) 
[address="XXXXX.topic", durable=2, timeout=120, dynamic=false, 
capabilities=:topic], target=@target(41) [address="XXXXX.topic", durable=0, 
timeout=0, dynamic=false], initial-delivery-count=0, max-message-size=0]
2022-04-04 16:56:52 [Protocol] trace [XXXXX_APP_ID]: FRAME: 0 <- @attach(18) 
[name="XXXXX.topic", handle=2, role=false, snd-settle-mode=2, 
rcv-settle-mode=0, source=@source(40) [address="XXXXX.topic", durable=2, 
expiry-policy=:"session-end", timeout=120, dynamic=false, 
capabilities=@PN_SYMBOL[:topic]], target=@target(41) [address="XXXXX.topic"], 
incomplete-unsettled=false, initial-delivery-count=0]

Best Regards,
Rahul
-----Original Message-----
From: Robbie Gemmell <robbie.gemm...@gmail.com> 
Sent: 04 April 2022 11:45
To: users <users@qpid.apache.org>
Subject: Re: <Unverified Sender>RE: QPID C++ Queue handling

That is the 'link terminus' durability. It won't have any influence for queues. 
If you are using 'topics' / multicast the broker will look at that when 
deciding if it is a durable subscription or not, to determine if its a durable 
or volatile subscription and utilising the link name as the subscription name.

If you want a durable topic subscription you would need to specify a repeatable 
link name and set the terminus durability. This isnt something I have tried, 
but it looks like you can set the link name (used as subscription name) and 
link durability within the 'address string' given to the client, by specifying 
'link options' in style:
myTopic; {link: {name: <link-name>, durable: True | False }

On Fri, 1 Apr 2022 at 15:41, rahul.sin...@morganstanley.com 
<rahul.sin...@morganstanley.com> wrote:
>
> Thanks Robbie.
>
> 1 more question. We notice that durable=0 in our AMQP frames going out. I 
> assume this indicates to the broker whether the subscription is durable or 
> not. Please kindly help in suggesting how we can enforce this is set rightly. 
> When I looked into qpid::messaging APIs, I could not find an obvious way.
>
>  [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]
>
> Best Regards,
> Rahul
> -----Original Message-----
> From: Robbie Gemmell <robbie.gemm...@gmail.com>
> Sent: 01 April 2022 14:57
> To: users <users@qpid.apache.org>
> Subject: Re: <Unverified Sender>RE: QPID C++ Queue handling
>
> Neither the queue name or the type capability (which given you found the 
> problem, you may not need) should have ' ' in the actual value, per the 
> various [address string] examples that lack that.
>
> The selector will have ' ' around values that happen to be a string literal, 
> since that is the syntax for string literals within selectors, essentially 
> like the JMS selector syntax. It is the server that does the selection.
>
> The server will provide a copy of every message sent to the topic to each 
> subscription on the topic (i.e each subscriber if they aren't shared subs), 
> that is how pub/sub topics work. The client does nothing special.
>
> On Fri, 1 Apr 2022 at 13:31, rahul.sin...@morganstanley.com 
> <rahul.sin...@morganstanley.com> wrote:
> >
> > 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/
> > ad
> > dress-model.html [2]
> > https://activemq.apache.org/components/artemis/documentation/latest/
> > ad
> > dress-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/selec
> > > te
> > > d_
> > > 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
> >
>
> ---------------------------------------------------------------------
> 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
>

---------------------------------------------------------------------
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