The choice of tempQ vs replyQ comes down to the need for a durable reply which can help with idempotency. In the case of a tempq and your rcvd table (the failover transport has just such a table internally btw), on the resend there will be no indication of a potential previous reply as the tempQ will have been destroyed and been recreated. With a replyQ, it is possible to determine if a reply already exists because any reply will have been persisted. So it comes down to the question: can you loose a reply?
If you can't loose a reply and you need scalability, using a pool of reply queues and some discriminator to choose a q may be a suitable pattern. On 22 June 2010 16:43, <andrew.mar...@uk.bnpparibas.com> wrote: > I am aware of the fact that when using temp Qs the data goes away when the > connection is lost. I cope with this with some extra logic on the client > side. It remembers each request via a table. Entries are removed from this > table when replies are rcvd. When the connection is lost a reconnect is > done and the table is then used to resend any requests for which the reply > was pending. > > I am still puzzled as to what the received wisdom is regarding the use of > temporary queues. Are they of no practical use? I get around the problem > of lost connections as per the above. And I do this because I thought that > temporary Qs are to be preferred to a reply Q for scalability reasons. I > am not so sure now.... I note that a reply Q is a very common way of doing > client-server request-response despite the advice from the ActiveMQ web > page. Hmmmm. > > Regards, > > Andrew Marlow > > > > > Internet > ivan.pecho...@gmail.com > 22/06/2010 16:23 > Please respond to > users@activemq.apache.org > > > To > users@activemq.apache.org > cc > > Subject > Re: Temporary queues and a WAN > > > > > > > 2010/6/22 <andrew.mar...@uk.bnpparibas.com>: > > As per the advice at > > > > http://activemq.apache.org/how-should-i-implement-request-response-with-jms.html > > > I am using temporary Qs for my replies. > > ... > > > > Because of various technical obstacles that I wont go into here, I am > only > > able to run with ActiveMQ locally. ActiveMQ is fine there and so is > > IBM-MQSeries. I am not able to see if ActiveMQ would still work in the > WAN > > situation. But IBM does not seem to like it. What advice/recommendations > > do people have please? > > As far as I understand, temporary queues in ActiveMQ are directly > linked to client connection. > If client connection to broker is interrupted, all the temporary > queues created within this connection are lost. > If there were any requests in the middle of processing, replies to > these requests are lost (because ReplyTo destination specified in > these requests is no longer valid). > The same problem remains in case if client uses failover transport. > That's why we don't use temporary queues for ReplyTo. > > ActiveMQ gurus, please correct me, if I am wrong. > Actually, I didn't perform enough testing to be 100% sure of the > statements above. > > > ___________________________________________________________ > This e-mail may contain confidential and/or privileged information. If you > are not the intended recipient (or have received this e-mail in error) > please notify the sender immediately and delete this e-mail. Any > unauthorised copying, disclosure or distribution of the material in this > e-mail is prohibited. > > Please refer to > http://www.bnpparibas.co.uk/en/information/legal_information.asp?Code=ECAS-845C5H > for additional disclosures. > -- http://blog.garytully.com Open Source Integration http://fusesource.com