You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Michael Süess <mi...@basis06.ch> on 2012/05/16 17:35:45 UTC

ExchangeTimedOutException when using vm/seda with multipleConsumers=true

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?

Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true

Posted by Michael Süess <mi...@basis06.ch>.
Hi


i have analyzed the problem a little bit and i think the problem is not 
the InOut pattern, but the multipleConsumers=true flag;

if i run the same sample without the
<setExchangePattern pattern="InOut"/>
everything seems to be fine, but when i look in the in (data/spike/in) 
folder there are still *.camelLock files for each consumed file....



On 23.05.2012 20:46, Claus Ibsen wrote:
> 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
> <mi...@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
>>> <mi...@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
>
>
>


-- 
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

Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true

Posted by Claus Ibsen <cl...@gmail.com>.
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
<mi...@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
>> <mi...@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/

Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true

Posted by Michael Süess <mi...@basis06.ch>.
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
> <mi...@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

Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Post the stacktrace, and what Camel version you are using.



On Wed, May 16, 2012 at 5:35 PM, Michael Süess
<mi...@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?



-- 
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/

Re: ExchangeTimedOutException when using vm/seda with multipleConsumers=true

Posted by Christian Müller <ch...@gmail.com>.
Could you set multipl eConsumers=true also on the producer (to("vm:..."))
side.

Best,
Christian

Sent from a mobile device
Am 16.05.2012 17:37 schrieb "Michael Süess" <mi...@basis06.ch>:

> 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<http://www.springframework.org/schema/beans>
> "
>       xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
> "
>       xmlns:camel="http://camel.**apache.org/schema/spring<http://camel.apache.org/schema/spring>
> "
>       xsi:schemaLocation="
>       http://www.springframework.**org/schema/beans<http://www.springframework.org/schema/beans>
> http://www.springframework.**org/schema/beans/spring-beans.**xsd<http://www.springframework.org/schema/beans/spring-beans.xsd>
>       http://camel.apache.org/**schema/spring<http://camel.apache.org/schema/spring>
> http://camel.apache.org/**schema/spring/camel-spring.xsd<http://camel.apache.org/schema/spring/camel-spring.xsd>
> **">
>    <camelContext xmlns="http://camel.apache.**org/schema/spring<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?
>