All my beans in the route implement this interface:

public interface Handler {
    EventData handle(EventData data) throws HandlerException;
}

They are all exported via camel:export and the following works nicely:

        <camel:route>
            <camel:from uri="direct://handle.event" />
            <camel:to uri="direct://eventDataLogger"/>
            <camel:to uri="direct://duplicateEventChecker" />
            <camel:to uri="direct://dateTransformation"/>
            <camel:to uri="direct://userAgentParser" />
            <camel:to uri="direct://pageToIdEventAssociation"/>
            <camel:to uri="direct://bufferedEventInsertAugmentation"/>
            <camel:to uri="direct://playerStartUpEventAugmentation"/>
            <camel:to uri="direct://loadStartToPreviousLoadstartAssociation"
/>
            <camel:to uri="direct://insertPlaySuccessAfterTimeupdate" />
            <camel:to
uri="direct://bufferedEventToPreviousLoadStartAssociation" />
            <camel:to uri="direct://mongoDBPersistence"/>
        </camel:route>

In an effort to add some concurrency, I changed all instances of direct://
to vm://  now I am getting:

The OUT message was not received within: 30000 millis. Exchange[Message:
BeanInvocation public abstract com.mediaplatform.cdc.event.EventData
com.mediaplatform.cdc.consumer.process.handler.Handler.handle(com.mediaplatform.cdc.event.EventData)
throws
com.mediaplatform.cdc.consumer.process.handler.exception.HandlerException
with [EventDataImpl{id='null', partitionKey='constant',
vd=VariableDataImpl{} {T=pl, ts=2015-04-29T13:31:28.182Z, ua=Mozilla/5.0
(Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/41.0.2272.104 Safari/537.36,
eid=0973e910-97a5-4f65-99e8-c9d2f92cee1d, av=5.0 (Macintosh; Intel Mac OS X
10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104
Safari/537.36}}]]]

Message History
---------------------------------------------------------------------------------------------------------------------------------------
RouteId              Pro...Id   Processor                                       
                                   
Elapsed (ms)
[route2            ] [route2 ] [vm://handle.event                               
                             
] [     30006]
[route2            ] [to1      ] [vm://eventDataLogger                          
                            
] [     30005]

I still want the semantics of result of one handler passed to the next and I
want to handle the messages sequentially (without race conditions), however,
I wanted to have multiple stops on the route processing messages
concurrently as opposed to waiting for a single message to be handled
through entire route before starting work on the next message.

I kinda envision this as multiple messages bubbling through the route
instead of a single message shooting through it one at a time.

Is there a different pattern that I should try?

Thanks.
-AP_ 






--
View this message in context: 
http://camel.465427.n5.nabble.com/org-apache-camel-ExchangeTimedOutException-The-OUT-message-was-not-received-within-30000-millis-tp5766508.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to