camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Burkhardt <jburkha...@gmail.com>
Subject custom component synchronous processing
Date Thu, 19 Apr 2012 18:32:51 GMT
Ugh, tough time deciding a proper title for this one.
I have a custom component that basically implements a
com.sun.net.httpserver.HttpServer - as such, it is consumer only.  My
HttpConsumer component extends DefaultConsumer and basically takes the
HttpServer and sets an HttpHandler object on it.  The HttpHandler object is
created with a reference to the Processor from my HttpEndpoint (extends
DefaultEndpoint).  When the handler receives a message it calls
endpoint.createExchange and then processor.process(exchange).
This is all well and good and a typical route looks like this:

<route>
<from uri="httpserver:myserver?someoptions"/>
<log message="message ${body}"/>
</route>

The problem I'm having is we are receiving posts to the server at a rate of
>= 3 per second and the log endpoint is getting them out of order from time
to time.  I've debugged it to the point where the messages are in order
right up until the point processor.process(exchange) is called, and then it
falls into the realm of the InstrumentationProcessor, which processes it
asynchronously.
I've tried setting synchronous=true on my endpoint to no effect.  
Is there a better way to accomplish what I want?  I really need the messages
to be in the same order they were received for processing later in the
route, but thus far I have not been able to guarantee their order past the
processor.process call.
Any pointers/help would be appreciated.  If it makes a difference, I'm
currently running camel 2.6.0

Thanks,
Jason Burkhardt

--
View this message in context: http://camel.465427.n5.nabble.com/custom-component-synchronous-processing-tp5652471p5652471.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Mime
View raw message