-----Original Message-----
From: Java Programmer [mailto:[email protected]]
Sent: Tuesday, December 23, 2008 7:10 PM
To: [email protected]
Subject: Re: JMS / proxy problem
2008/12/19 <[email protected]>:
> Hi,
>
> I faced a similar problem...Just checkout if this works..
>
> Synapse creates a temporary queue where it waits for the response
> message from the jms.
> After the timout it deletes the temporary queue and hence the response
> is lost.
>
> So you can use 1 more proxy service which waits for the response
> message on a separate queue.
> You can configure your remote jms service to return the message to
> that queue.
>
> So basically you will be using 2 proxy services--One to send the
> request and other will listen for the response.
>
> You can set the endpoint, to which the response has to be sent, as a
> header.
Hi,
Can you post us some sample of your code - it seems that it solve our
problem, we are stuck with response from external service.
Best regards,
Adr
Hi,
I am posting a snapshot of the proxy configuration I used. (My problem
statement was a bit different)
I had a jms service which I wanted to expose on http transport. My JMS
service accepts input from a request Queue and then posts the output to
a separate response queue.
<!-- Proxy Service which the end client uses to send a request to my JMS
service via synapse -->
<syn:proxy name="AsyncHttpToJms" trace="enable">
<syn:target>
<syn:endpoint>
<!-- JMS DESTINATION -->
<syn:address
uri="jms:/testQueue?transport.jms.ConnectionFactoryJNDIName=QueueConnect
ionFactory&java.naming.factory.initial=org.apache.activemq.jndi.Acti
veMQInitialContextFactory&java.naming.provider.url=tcp://localhost:6
1616&transport.jms.DestinationType=queue&
transport.jms.ReplyDestination= AsyncJmsToHttp"/>
</syn:endpoint>
<syn:inSequence>
<syn:log level="full" separator=","/>
</syn:inSequence>
<syn:outSequence>
<syn:send/>
</syn:outSequence>
</syn:target>
</syn:proxy>
<!-- Proxy Service which listens for a response from the jms service and
sends it back to an async client service -->
<syn:proxy name="AsyncJmsToHttp" transports="jms" trace="enable">
<syn:target>
<syn:endpoint>
<!-- I have hard coded the endpoint address of the service. You can also
send this address as a header -->
<syn:address
uri="http://localhost:8080/AllocationResponseService/services/Allocation
Service/allocationResponse"/>
</syn:endpoint>
<syn:inSequence>
<syn:log level="full" separator=","/>
</syn:inSequence>
<syn:outSequence>
<syn:send/>
</syn:outSequence>
</syn:target>
</syn:proxy>
Earlier I was using a single proxy service (AsyncHttpToJms) and I got
the same error, because my JMS service did not respond back within 30
sec. (WARN JMSSender Did not receive a JMS response within 30000 ms to
destination : temp-queue...)
You can browse the mail archive to view the exact suggestion I got--
http://mail-archives.apache.org/mod_mbox/synapse-user/200812.mbox/browse
r
"Sub :: Is it possible to expose an "asynchronous" web service based on
WS-Addressing standard in Synapse?"
Hope this helps..
Cheers,
Shradha
Please do not print this email unless it is absolutely necessary.
The information contained in this electronic message and any attachments to
this message are intended for the exclusive use of the addressee(s) and may
contain proprietary, confidential or privileged information. If you are not the
intended recipient, you should not disseminate, distribute or copy this e-mail.
Please notify the sender immediately and destroy all copies of this message and
any attachments.
WARNING: Computer viruses can be transmitted via email. The recipient should
check this email and any attachments for the presence of viruses. The company
accepts no liability for any damage caused by any virus transmitted by this
email.
www.wipro.com