I am using AMQ-cpp for a client-server system where my server will be long 
running and in the meantime the queue manager may be restarted. So far in 
my implementation I have been using  one request Q upon which all requests 
are rcvd, and temporary Qs for the replies. When all is well this works 
just fine. However, when the connection to the Q mgr is lost the contents 
of the temporary Qs is lost. I realise this is the way that temporary Qs 
are supposed to work but it makes me wonder if temporary Qs are right for 
a long running server when the Q mgr may go away. What do people think?

The other design I had in mind, which I have seen implemented elsewhere, 
is for the server to have a reply Q and clients use a message selector to 
get the reply for their correlation id. I am not sure I can do that 
because my client will actually be firing off several requests close 
together before getting a reply for any of them. So if I was to browse for 
replies I would have to watch out for all the correlation ids for any 
pending replies.

I am on the verge of writing some recovery code that remembers the 
messages sent for which no reply has been rcvd yet and resends them on a 
reconnect. This is a little bit involved and makes me wonder if maybe I 
shouldn't be using temporary Qs after all. But I heard somewhere that 
temporary Qs are supposed to be the better solution, more scalable, better 
performance etc etc. Can anyone comment please?

Regards,

Andrew Marlow

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

Reply via email to