Hi, Camel was wonderful piece of software and using it in production for more than a year. Our version of Camel was 2.10.1
I recently added few additional route (and bug in buz logic too) to interface with additional systems, all the routes are doing the similar job. They read JMS message from an unique-end-point (MQ JMS Queue) and invoke buzComponent (Camel component). But recently discovered that some subtle concurrency issues inside the buzComponent causing trouble to us. And I am looking for some sort of Camel hack to prevent it from further damage by making all the end-point consumer to use one and only thread. 1) As a short term solution, we like to convert all the JMS component to use single threaded threadPool (or taskExecutor), and that new thread pool shouldn't allow more than a thread across all the JMS end-point. Is it possible? We are not worried about latency and performance for some time. 2) if there is a possibility, our camel error handlers were already in-place, Can we assume that single thread would continue working despite any exception configured to errorHandler. ErrorHandlers will have its own thread. 3) I am also happy to introduce one or more route and end-point inside camelcontex.xml, so all the buzComponent can be redirected into that new route to make it SingleThreaded execution somehow.. are there any suggestion to use some camel component (We could use any hack as long as configurable inside xml). I am pretty sure all the above approach may be short sighted, but looking for temporary solution which could work for few days. We are happy to modify Camel xml, than changing code and making it complex. I appreciate feedback. Regards Mohan <camelContext> <route id="route-one"> <from uri="ibmmq1:queue:fromSourceOne" /> <inOnly uri="direct://buzComponent" /> </route> <route id="route-two"> <from uri="ibmmq2:queue:fromSourceTwo" /> <inOnly uri="direct://buzComponent" /> </route> <!-- problematic root due to buzComponent locking--> <route id="high-speed-source-source-3"> <from uri="ibmmq3:queue:fromHighSpeedSourceOne" /> <inOnly uri="direct://buzComponent" /> </route> <route id="high-speed-source-source-4"> <from uri="ibmmq4:queue:fromHighSpeedSourceTwo" /> <inOnly uri="direct://buzComponent" /> </route> </camelContext> <bean id="ibmmq" class="org.apache.camel.component.jms.JmsComponent"> <property name="connectionFactory"> <bean class="com.ibm.mq.jms.MQConnectionFactory"> ... </bean> </property> </bean>