Hi Shradha

First of all, please subscribe to the mailing lists [1] before posting, to receive our replies.. I have manually copied this reply directly to you this ti
We have a jms based asynchronous service which we want to expose as a
web service via Http transport.
So I am using Synapse as a proxy which accepts http requests from a web
service client and invokes my jms service.
The problem I face is when synapse makes a call to my jms service, it
waits for the response on a temporary queue, only for 30 sec.
Since my service is asynchronous it does not send a reply back within 30
sec, resulting in synapse deleting the temporary queue and sending a
timeout response to the client.
(My web service client is asynchronous) I am using synapse 1.2. I tried setting the replyTo transport parameter
to a permanent queue in synapse.xml, but the message my jms service
recieves always has the replyTo set to the temporary queue.
I hope I have explained my problem statement clearly. Can anybody suggest me a a possible way to achieve my objective?
What you need would be two proxy services to process the messages in the different directions. When processing the client request with WS-A, you need to extract the ReplyTo and make it available when processing the asynchronous response. One scalable and simple solution is to put this as a JMS header to the ultimate back end service, and expect it to put it back as a JMS header, when it posts the response to the JMS reply destination.

Then you could have another proxy service listening on the reply JMS destination, and then read the JMS header which contains the clients ReplyTo, and send the message to that [http] destination. You could alternatively use a DB table, in-memory hash map etc to store the WS-A ReplyTo - and you could select an appropriate method depending on your environment, and other architectural requirements expected.

cheers
asankha

[1] http://synapse.apache.org/mail-lists.html

--
Asankha C. Perera
http://adroitlogic.org

http://esbmagic.blogspot.com

Reply via email to