You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Liam Clarke-Hutchinson <li...@steelsky.co.nz> on 2013/02/01 06:25:31 UTC

Camel proxies using Activemq queues

Hi,

I have a camel proxy defined using the Spring DSL that I'd like to
communicate synchronously with the implementing service via an
ActiveMQ queue, and while the service does receive the BeanInvocation,
the response never makes it back to the proxy and the request-reply
times out. My route is as follows:

<from uri="activemq:queue:PRODUCTS_SEEN"/>
<inOut uri="bean:productRetargetingService"/>

and the proxy's service URL is set to "activemq:queue:PRODUCTS_SEEN".

The request is received, and processed within the service, and we can
see the reply value being set on the out body of the exchange, but we
can't figure out what's going wrong after that.

Could it be because our proxy bean and the service bean are using
different camel contexts?
I understand (from somewhere) that a temporary response queue is
created by Camel, is there a way I can explicitly specify a response
queue?

Regards,

Liam Clarke

Re: Camel proxies using Activemq queues

Posted by Liam Clarke-Hutchinson <li...@steelsky.co.nz>.
Hi Claus,

I apologise for not giving useful information in my previous email.
I've resolved my issue - it was PEBKAC, the message was failing to
return because what I was returning was not serializable. I'd
forgotten that inner classes (in this case, a comparator) retained
references to their owning classes - so my 'serializable' tree-set was
also trying to serialize the containing service. As the Camel book
says, it's the #1 rule of camel proxies. :/

Thank you for your quick response though.


Regards,

Liam Clarke

On Fri, Feb 1, 2013 at 8:38 PM, Claus Ibsen <cl...@gmail.com> wrote:
> On Fri, Feb 1, 2013 at 6:25 AM, Liam Clarke-Hutchinson
> <li...@steelsky.co.nz> wrote:
>> Hi,
>>
>> I have a camel proxy defined using the Spring DSL that I'd like to
>> communicate synchronously with the implementing service via an
>> ActiveMQ queue, and while the service does receive the BeanInvocation,
>> the response never makes it back to the proxy and the request-reply
>> times out. My route is as follows:
>>
>> <from uri="activemq:queue:PRODUCTS_SEEN"/>
>> <inOut uri="bean:productRetargetingService"/>
>>
>> and the proxy's service URL is set to "activemq:queue:PRODUCTS_SEEN".
>>
>> The request is received, and processed within the service, and we can
>> see the reply value being set on the out body of the exchange, but we
>> can't figure out what's going wrong after that.
>>
>
> Maybe post more details such as the route, XML etc. Also what Camel
> and ActiveMQ version do you use?
>
>
>> Could it be because our proxy bean and the service bean are using
>> different camel contexts?
>> I understand (from somewhere) that a temporary response queue is
>> created by Camel, is there a way I can explicitly specify a response
>> queue?
>>
>
> Yes see the JMS docs
> http://camel.apache.org/jms
>
>
>
>
>> Regards,
>>
>> Liam Clarke
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Email: cibsen@redhat.com
> Web: http://fusesource.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen

Re: Camel proxies using Activemq queues

Posted by Claus Ibsen <cl...@gmail.com>.
On Fri, Feb 1, 2013 at 6:25 AM, Liam Clarke-Hutchinson
<li...@steelsky.co.nz> wrote:
> Hi,
>
> I have a camel proxy defined using the Spring DSL that I'd like to
> communicate synchronously with the implementing service via an
> ActiveMQ queue, and while the service does receive the BeanInvocation,
> the response never makes it back to the proxy and the request-reply
> times out. My route is as follows:
>
> <from uri="activemq:queue:PRODUCTS_SEEN"/>
> <inOut uri="bean:productRetargetingService"/>
>
> and the proxy's service URL is set to "activemq:queue:PRODUCTS_SEEN".
>
> The request is received, and processed within the service, and we can
> see the reply value being set on the out body of the exchange, but we
> can't figure out what's going wrong after that.
>

Maybe post more details such as the route, XML etc. Also what Camel
and ActiveMQ version do you use?


> Could it be because our proxy bean and the service bean are using
> different camel contexts?
> I understand (from somewhere) that a temporary response queue is
> created by Camel, is there a way I can explicitly specify a response
> queue?
>

Yes see the JMS docs
http://camel.apache.org/jms




> Regards,
>
> Liam Clarke



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cibsen@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen