On 30/01/2008, Sigmund <[EMAIL PROTECTED]> wrote:
>
>
>
> RomKal wrote:
> >
> > 2008/1/28, Roman Kalukiewicz <[EMAIL PROTECTED]>:
> >> 2008/1/27, Sigmund <[EMAIL PROTECTED]>:
> >> > Is it possible to do asynchronous JMS request/response using camel
> >> > producerTemplate i.e.
> >> > need to create temp queue and set JMSReplyTo, or is the only solution
> >> pure
> >> > JMS api?
> >>
> >> I believe it is possible by setting pattern property on the exchange you
> >> send.
> >>
> >> You can use template.send(String, Processor) method and in your
> >> processor you can do:
> >>
> >> ((DefaultExchange)exchange).setPattern(InOut);
> >>
> >> To clarify - what I write is not tested, and I don't have my eclipse
> >> at the moment so if there are some methods that are named in a
> >> different way, that find the proper one. Anyway SOMETHING like this
> >> should work.
> >
> > Ah - and one more thing - it is definitely not asynchronous then, but
> > as far as I know JMSEndpoint doesn't support asynchronous invocations
> > so far..
> > But no need to set JMSReplyTo manually using JMS interfaces ;)
> >
> > Roman
> >
> >
>
> Thanks,
>
> By default the producer returns an object as the sent message, do I use the
> exchange to set another
> if I like to return something else, like i.e. an ID? The consumer implements
> Processor I guess. Can you
> provide a simple example? The docs are not too clear on this..

FWIW if you've looked at Lingo, then Camel hasn't quite caught up to
all the clever async things Lingo does on JMS; but we're getting
closer all the time.

Right now as Roman said if you send a message exchange to a JMS
endpoint with InOut set as the pattern on the Exchange then internally
it creates a temporary queue and does the request/response thing.
However the caller is synchronous; it will block for the response.

For one way messaging (say an async method invocation) then you just
use the InOnly message exchange pattern (so that the caller does not
block for the result).

If we wanted a truly asynchronous client side mechanism; we'd need to
use 2 Camel endpoints or something; one for a oneway request and one
to receive the asynchronous response.

Do you really want asynchronous request/reply or just to switch
between InOut and InOnly for async oneways?

-- 
James
-------
http://macstrac.blogspot.com/

Open Source Integration
http://open.iona.com

Reply via email to