Interesting, the prefix "ID:" denotes a temp queue, it is generated from the default connection id scheme. The consumer is doing a check based on the connection id, it throws the exception because foo does not match the auto generated connection id.
>From the code, it looks like there is a way around this, org.apache.activemq.ActiveMQConnectionFactory#setClientIDPrefix The default prefix is "ID:<hostName>, if you set it to ID:ReplyDest.<hostname>, all of your connections and temp destinations will match a wild card "ID:ReplyDest.>" for inclusion in a statically included destination, but will also match their connection ids, so creating consumers will work ok. > on regular queues When you use "temp.foo" you are creating a regular queue that is not tied to a connection. Correct, if the reply queue is shared, you will need to use a selector based on correlation id. Have a read of http://trenaman.blogspot.com/2009/01/message-selectors-and-activemq.html for insights into the use of selectors. On 22 March 2011 20:55, anuhbava <anubh...@aol.com> wrote: > Gary, > > Many thanks for taking time to respond in detail on this issue. > > However when I attempted taking your approach # 1 (creating a named queue > with name="ID:foo") I am getting this exception from createConsumer() > method: > > [java] javax.jms.InvalidDestinationException: Cannot use a Temporary > destination from another Connection > [java] at > org.apache.activemq.ActiveMQMessageConsumer.(ActiveMQMessageConsumer.java:189) > [java] at > org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1116) > [java] at > org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1060) > [java] at > org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:973) > [java] at > org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:946) > > When I name it something else like "temp.foo" it doesn't throw this > exception however client doesn't get the responses back because that is not > included in staticallyIncludedDestinations tag. so most likely it doesn't > allow a queue name to start with "ID:". > > Regarding using regular queues for reply processing: Wouldn't we need to use > selectors in that case to make sure response reaches back to the very same > client instance of origin? > > Unfortunately the reason why I am chasing this issue is that ours is a large > network with many dynamic producers/consumers causing creation of thousands > of advisory topics on each broker instance. > > cheers, > Anubhava > > > Gary Tully wrote: >> >> correct, networking the dynamically created and named temp queues >> require advisories. >> >> First note that advisories are typically fine, it is only in large >> networks with many dynamic consumers that the advisory overhead is >> significant. >> >> There are two possible workarounds for request reply when advisories >> are disabled. >> The first is to use named temp queues via >> org.apache.activemq.ActiveMQSession#createQueue where names that start >> with "ID:" are temporary. >> The second is to use regular queues for reply processing. Using >> regular queues gives the option to use persistent replies if you want >> to deterministically process replies. >> In both cases, the reply destination names will need to be included in >> staticallyIncludedDestinations. >> >> It would be nice if it was possible to create a wildcard statically >> included destination for all temp queues, but the current naming >> convention will not facilitate that. >> With s suitable prefix (say "REPLY.") for you named temp queue >> or >> reply queue, a wildcard staticallyIncludedDestinations should work >> fine. >> >> On 22 March 2011 02:26, anuhbava <anubh...@aol.com> wrote: >> > Gary, >> > >> > I ran into issues using advisorySupport="false" and >> > staticallyIncludedDestinations. >> > >> > We use JMS for mostly request-response like described here: >> > >> http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html >> > >> > We are using temporary queue on Producer side to be able to receive >> response >> > from Consumers and since staticallyIncludedDestinations cannot >> include these >> > temporary queue names in it therefore all the Producers are unable to >> > receive responses back from clients when advisorySupport is disabled. >> > >> > I am coming to conclusion that for our scenario advisorySupport >> cannot be >> > turned off unless there is some other config trick I'm not aware of. >> > >> > Thanks, >> > Anubhava >> > >> > >> > On Mon, Mar 21, 2011 at 2:35 PM, Gary Tully [via ActiveMQ] < >> > ml-node+3394397-1352398844-221...@n4.nabble.com> wrote: >> > >> >> thanks for closing the loop. >> >> >> >> On 21 March 2011 18:11, anuhbava <[hidden >> email]<http://user/SendEmail.jtp?type=node&node=3394397&i=0&by-user=t>> >> >> wrote: >> >> >> >> > Thank you very much Gary. >> >> > >> >> > Including this config: >> >> > >> >> > <staticallyIncludedDestinations> >> >> > <queue physicalName="TEST.FOO"/> >> >> > <queue physicalName="TEST.BAR"/> >> >> > </staticallyIncludedDestinations> >> >> > >> >> > inside networkConnector tag did the trick. >> >> > >> >> > cheers, >> >> > Anubhava >> >> > >> >> > On Mon, Mar 21, 2011 at 7:54 AM, Gary Tully [via ActiveMQ] >> < >> >> > [hidden >> email]<http://user/SendEmail.jtp?type=node&node=3394397&i=1&by-user=t>> >> >> wrote: >> >> > >> >> >> without advisories, you need to explicitly specify the >> list of >> >> >> statically included/excluded destinations for each >> network connector. >> >> >> >> >> >> On 18 March 2011 22:42, anuhbava <[hidden email]< >> >> >> http://user/SendEmail.jtp?type=node&node=3393367&i=0&by-user=t>> >> >> >> >> >> wrote: >> >> >> >> >> >> > If you see my networkConnector tag in original post >> you will notice >> >> that >> >> >> I >> >> >> > don't have dynamic network brokers. Both of my >> brokers have >> >> >> > uri="static:(tcp://localhost:61616)" and >> >> >> > uri="static:(tcp://localhost:61617)" >> >> >> > >> >> >> > Thanks. >> >> >> > >> >> >> > -- >> >> >> > View this message in context: >> >> >> >> >> >> http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3388635.html<http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3388635.html?by-user=t><http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3388635.html%3Chttp://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3388635.html?by-user=t%3E&by-user=t> >> >> >> >> >> >> >> >> > Sent from the ActiveMQ - User mailing list archive >> at Nabble.com. >> >> >> > >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> http://blog.garytully.com >> >> >> http://fusesource.com >> >> >> >> >> >> >> >> >> ------------------------------ >> >> >> If you reply to this email, your message will be added >> to the >> >> discussion >> >> >> below: >> >> >> >> >> >> >> >> >> http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3393367.html<http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3393367.html?by-user=t> >> >> >> To unsubscribe from network of broker stop forwarding >> messages without >> >> >> advisorySupport enabled, click here< >> >> >> http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3386261&code=YW51YmhhdmFAYW9sLmNvbXwzMzg2MjYxfDE5NDQ4NzEwMjE=><http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3386261&code=YW51YmhhdmFAYW9sLmNvbXwzMzg2MjYxfDE5NDQ4NzEwMjE=%3E&by-user=t>. >> >> >> >> >> >> >> >> >> >> > >> >> > >> >> > -- >> >> > View this message in context: >> >> >> http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3394328.html<http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3394328.html?by-user=t> >> >> >> >> > Sent from the ActiveMQ - User mailing list archive at >> Nabble.com. >> >> >> >> >> >> >> >> -- >> >> http://blog.garytully.com >> >> http://fusesource.com >> >> >> >> >> >> ------------------------------ >> >> If you reply to this email, your message will be added to the >> discussion >> >> below: >> >> >> >> >> http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3394397.html >> >> To unsubscribe from network of broker stop forwarding messages >> without >> >> advisorySupport enabled, click >> here<http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3386261&code=YW51YmhhdmFAYW9sLmNvbXwzMzg2MjYxfDE5NDQ4NzEwMjE=>. >> >> >> >> >> > >> > >> > -- >> > View this message in context: >> http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3395331.html >> > Sent from the ActiveMQ - User mailing list archive at Nabble.com. >> >> >> >> -- >> http://blog.garytully.com >> http://fusesource.com >> > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/network-of-broker-stop-forwarding-messages-without-advisorySupport-enabled-tp3386261p3397734.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > -- http://blog.garytully.com http://fusesource.com