camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true
Date Wed, 23 May 2012 18:46:43 GMT
Hi

Thanks. I have reproduced the issue and logged a JIRA
https://issues.apache.org/jira/browse/CAMEL-5303

On Mon, May 21, 2012 at 7:38 AM, Michael Süess
<michael.sueess@basis06.ch> wrote:
> Hi
>
>
> Camel 2.8.4
>
> Stacktrace:
>
> Starting Camel. Use ctrl + c to terminate the JVM.
>
> [                          main] MainSupport                  
 INFO Apache
> Camel 2.8.4 starting
> [                          main] CamelNamespaceHandler          INFO
OSGi
> environment not detected.
> [                          main] SpringCamelContext             INFO
Apache
> Camel 2.8.4 (CamelContext: camel-1) is starting
> [                          main] SpringCamelContext             INFO
JMX
> enabled. Using ManagedManagementStrategy.
> [                          main] AnnotationTypeConverterLoader  INFO Found
3
> packages with 15 @Converter classes to load
> [                          main] DefaultTypeConverter           INFO
Loaded
> 169 core type converters (total 169 type converters)
> [                          main] AnnotationTypeConverterLoader  INFO Loaded
> 1 @Converter classes
> [                          main] DefaultTypeConverter           INFO
Loaded
> additional 1 type converters (total 170 type converters) in 0.004 seconds
> [                          main] FileEndpoint                  
INFO
> Endpoint is configured with noop=true so forcing endpoint to be idempotent
> as well
> [                          main] FileEndpoint                  
INFO Using
> default memory based idempotent repository with cache max size: 1000
> [                          main] rFileExclusiveReadLockStrategy WARN
> Deleting orphaned lock file: data\spike\in\foo.txt.camelLock
> [                          main] SpringCamelContext             INFO
Route:
> subject started and consuming from: Endpoint[file://data/spike/in?noop=true]
> [                          main] SpringCamelContext             INFO
Route:
> subjectListener1 started and consuming from:
> Endpoint[vm://subjectStarted?multipleConsumers=true]
> [                          main] SpringCamelContext             INFO
Route:
> subjectListener2 started and consuming from:
> Endpoint[vm://subjectStarted?multipleConsumers=true]
> [                          main] SpringCamelContext             INFO
Total 3
> routes, of which 3 is started.
> [                          main] SpringCamelContext             INFO
Apache
> Camel 2.8.4 (CamelContext: camel-1) started in 0.572 seconds
> [read #0 - file://data/spike/in] subject                        INFO
> starting file 'foo.txt' ...
> [hread #4 - vm://subjectStarted] subjectListener2               INFO
>  starting file 'foo.txt' ...
> [hread #3 - vm://subjectStarted] subjectListener1               INFO
>  starting file 'foo.txt' ...
> [hread #4 - vm://subjectStarted] subjectListener2               INFO  file
> 'foo.txt' done
> [hread #3 - vm://subjectStarted] subjectListener1               INFO  file
> 'foo.txt' done
> [read #0 - file://data/spike/in] DefaultErrorHandler            ERROR Failed
> delivery for exchangeId: ID-nb19-50158-1337578515058-0-1. Exhausted after
> delivery attempt: 1 caught: org.apache.camel.ExchangeTimedOutException: The
> OUT message was not received within: 30000 millis. Exchange[foo.txt]
> org.apache.camel.ExchangeTimedOutException: The OUT message was not received
> within: 30000 millis. Exchange[foo.txt]
>        at
> org.apache.camel.component.seda.SedaProducer.process(SedaProducer.java:129)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:114)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:284)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:109)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:116)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.Pipeline.process(Pipeline.java:79)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:139)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:106)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.component.file.GenericFileConsumer.processExchange(GenericFileConsumer.java:353)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.component.file.GenericFileConsumer.processBatch(GenericFileConsumer.java:176)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:137)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:138)[camel-core-2.8.4.jar:2.8.4]
>        at
> org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:90)[camel-core-2.8.4.jar:2.8.4]
>        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)[:1.6.0_31]
>        at
> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)[:1.6.0_31]
>        at
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)[:1.6.0_31]
>        at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)[:1.6.0_31]
>        at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180)[:1.6.0_31]
>        at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204)[:1.6.0_31]
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_31]
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_31]
>        at java.lang.Thread.run(Thread.java:662)[:1.6.0_31]
>
>
>
> On 19.05.2012 11:06, Claus Ibsen wrote:
>>
>> Hi
>>
>> Post the stacktrace, and what Camel version you are using.
>>
>>
>>
>> On Wed, May 16, 2012 at 5:35 PM, Michael Süess
>> <michael.sueess@basis06.ch>  wrote:
>>>
>>> I use vm (or seda) with ?multipleConsumers=true to implement a
>>> request-reply
>>> observer pattern:
>>>
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <beans xmlns="http://www.springframework.org/schema/beans"
>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>       xmlns:camel="http://camel.apache.org/schema/spring"
>>>       xsi:schemaLocation="
>>>       http://www.springframework.org/schema/beans
>>> http://www.springframework.org/schema/beans/spring-beans.xsd
>>>       http://camel.apache.org/schema/spring
>>> http://camel.apache.org/schema/spring/camel-spring.xsd">
>>>    <camelContext xmlns="http://camel.apache.org/schema/spring">
>>>        <route id="subject">
>>>            <from uri="file:data/spike/in?noop=true"/>
>>>            <log message="starting file '${header.CamelFileName}' ..."/>
>>>            <to uri="vm:subjectStarted" pattern="InOut"/>
>>>            <log message="file '${header.CamelFileName}' done"/>
>>>        </route>
>>>
>>>        <route id="subjectListener1">
>>>            <from uri="vm:subjectStarted?multipleConsumers=true"/>
>>>            <log message="   starting file '${header.CamelFileName}'
>>> ..."/>
>>>            <log message="   file '${header.CamelFileName}' done"/>
>>>        </route>
>>>
>>>        <route id="subjectListener2">
>>>            <from uri="vm:subjectStarted?multipleConsumers=true"/>
>>>            <log message="   starting file '${header.CamelFileName}'
>>> ..."/>
>>>            <log message="   file '${header.CamelFileName}' done"/>
>>>        </route>
>>>    </camelContext>
>>> </beans>
>>>
>>> when running this sample i always got an ExchangeTimedOutException
>>> although
>>> all listeners have finished before the timeout.
>>>
>>> Any ideas?
>>
>>
>>
>>
>
>
> --
> Michael Sueess                           Senior Software Engineer
>
> basis06 AG, Birkenweg 61, CH-3013 Bern - Fon +41 31 311 32 22
> http://www.basis06.ch - source of smart business
>
> Keine News verpassen? http://www.basis06.ch/newsletter-registration.html
> Schon gebloggt? http://blog.basis06.ch



-- 
Claus Ibsen
-----------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Mime
View raw message