You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by "Krsmanovic, Dragisa" <Dr...@ask.com> on 2012/02/04 02:25:14 UTC

Future future = camel.asyncRequestBody(..) times out after 30 sec

Example:

Future<String> future = camel.asyncRequestBody("seda:test", "DO", String.class);
String response = future.get(1, TimeUnit.MINUTES);

If message takes a long time to complete, future.get() always times out after 30 sec regardless of what I set in future.get(..)

Seeing error:
Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 30000 millis. Exchange[Message: DO]

Are there any other parameters that I need to set if I want to wait for response message longer than 30 sec ?

Thanks,
Dragisa Krsmanovic

Re: Future future = camel.asyncRequestBody(..) times out after 30 sec

Posted by Hadrian Zbarcea <hz...@gmail.com>.
 From the link I sent before:
"Camel 2.0: Timeout in millis a seda PRODUCER will at most waiting for 
an async task to complete. See waitForTaskToComplete and Async for more 
details. In Camel 2.2 you can now disable timeout by using 0 or a 
negative value."

Emphasis on *producer*. The "from" in the route refers to the consumer. 
What you see is the expected behavior. Depending on who you ask the 
Camel terminology may sound a bit backwards, but it's the one used in 
the messaging space. The producer is the one who produces the message 
and sends it (i.e. it's the client) to a consumer (server) to process it 
and maybe (if it's not one-way, aka in-only) send back a reply. You'll 
get familiar with the terminology pretty quickly though, no worries.

I hope this helps. Thanks for using Camel, enjoy the ride.
Hadrian



On 02/03/2012 09:13 PM, Krsmanovic, Dragisa wrote:
> This works
> Future<String>  future = camel.asyncRequestBody("seda:test?timeout=60000",
> "DO", String.class);
>
> Curiously, setting timeout on the route definition seems to be ignored:
> from("seda:test?timeout=60000")... does not change the default 30 sec
> timeout.
>
> Dragisa
>
>
> On 2/3/12 6:04 PM, "Hadrian Zbarcea"<hz...@gmail.com>  wrote:
>
>> Did you try: "seda:foo?timeout=60000" or whatever else you prefer (in
>> millis)? The default timeout is 30 sec [1].
>>
>> Hadrian
>>
>> [1] http://camel.apache.org/seda.html
>>
>>
>> On 02/03/2012 08:25 PM, Krsmanovic, Dragisa wrote:
>>> Example:
>>>
>>> Future<String>   future = camel.asyncRequestBody("seda:test", "DO",
>>> String.class);
>>> String response = future.get(1, TimeUnit.MINUTES);
>>>
>>> If message takes a long time to complete, future.get() always times out
>>> after 30 sec regardless of what I set in future.get(..)
>>>
>>> Seeing error:
>>> Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message
>>> was not received within: 30000 millis. Exchange[Message: DO]
>>>
>>> Are there any other parameters that I need to set if I want to wait for
>>> response message longer than 30 sec ?
>>>
>>> Thanks,
>>> Dragisa Krsmanovic
>>>
>>
>> --
>> Hadrian Zbarcea
>> Principal Software Architect
>> Talend, Inc
>> http://coders.talend.com/
>> http://camelbot.blogspot.com/
>

-- 
Hadrian Zbarcea
Principal Software Architect
Talend, Inc
http://coders.talend.com/
http://camelbot.blogspot.com/

Re: Future future = camel.asyncRequestBody(..) times out after 30 sec

Posted by "Krsmanovic, Dragisa" <Dr...@ask.com>.
This works
Future<String> future = camel.asyncRequestBody("seda:test?timeout=60000",
"DO", String.class);

Curiously, setting timeout on the route definition seems to be ignored:
from("seda:test?timeout=60000")... does not change the default 30 sec
timeout.

Dragisa


On 2/3/12 6:04 PM, "Hadrian Zbarcea" <hz...@gmail.com> wrote:

>Did you try: "seda:foo?timeout=60000" or whatever else you prefer (in
>millis)? The default timeout is 30 sec [1].
>
>Hadrian
>
>[1] http://camel.apache.org/seda.html
>
>
>On 02/03/2012 08:25 PM, Krsmanovic, Dragisa wrote:
>> Example:
>>
>> Future<String>  future = camel.asyncRequestBody("seda:test", "DO",
>>String.class);
>> String response = future.get(1, TimeUnit.MINUTES);
>>
>> If message takes a long time to complete, future.get() always times out
>>after 30 sec regardless of what I set in future.get(..)
>>
>> Seeing error:
>> Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message
>>was not received within: 30000 millis. Exchange[Message: DO]
>>
>> Are there any other parameters that I need to set if I want to wait for
>>response message longer than 30 sec ?
>>
>> Thanks,
>> Dragisa Krsmanovic
>>
>
>-- 
>Hadrian Zbarcea
>Principal Software Architect
>Talend, Inc
>http://coders.talend.com/
>http://camelbot.blogspot.com/


Re: Future future = camel.asyncRequestBody(..) times out after 30 sec

Posted by Hadrian Zbarcea <hz...@gmail.com>.
Did you try: "seda:foo?timeout=60000" or whatever else you prefer (in 
millis)? The default timeout is 30 sec [1].

Hadrian

[1] http://camel.apache.org/seda.html


On 02/03/2012 08:25 PM, Krsmanovic, Dragisa wrote:
> Example:
>
> Future<String>  future = camel.asyncRequestBody("seda:test", "DO", String.class);
> String response = future.get(1, TimeUnit.MINUTES);
>
> If message takes a long time to complete, future.get() always times out after 30 sec regardless of what I set in future.get(..)
>
> Seeing error:
> Caused by: org.apache.camel.ExchangeTimedOutException: The OUT message was not received within: 30000 millis. Exchange[Message: DO]
>
> Are there any other parameters that I need to set if I want to wait for response message longer than 30 sec ?
>
> Thanks,
> Dragisa Krsmanovic
>

-- 
Hadrian Zbarcea
Principal Software Architect
Talend, Inc
http://coders.talend.com/
http://camelbot.blogspot.com/