Hi Charles My route is pretty simple.
<route id="SubmitRoute"> <from uri="direct:Submit" /> <to uri="SaveProcessor" /> </route> So what the SaveProcessor does is it takes hibernate DataObject from the camel exchange that we want to save to the DB. Now say there are 3 different threads sending 3 different DO objects (each has a unique primary key- an UUID) to the saveProcessor. Now in the saveProcessor when I get the DataObjects from the exchange I expect those to be same as what was originally sent, but I see one DO is getting repeated (so the same primary key is duplicated for couple of different threads) meaning i get only 2 ids 3rd one is lost. This behavior is causing hibernate exceptions as 2 different threads operate on same row in table in the same hibernate session.This happens sporadically. Let me give an example here @Autowired private CamelContext camelContext; @Test(enabled = true,invocationCount=3,threadPoolSize=3) public void testCamelContext(){ Exchange exchange = new DefaultExchange(camelContext); System.out.println("thread id :" + Thread.currentThread().getId()); exchange.setProperty(CamelConstants.ABC_DO, abcDO);//setting the DO to save callSaveProcessor(exchange);//calling the saveProcessor this internally calls the route. } private void callSaveProcessor (Exchange exchange) { AbcDO abc = exchange.getProperty(CamelConstants.ABC_DO,AbcDO.class); System.out.println("in getting back the property"+abc.getId());//you get duplicate primary //keys here. } Please let me know. -- View this message in context: http://camel.465427.n5.nabble.com/problem-with-exchange-getProperty-in-multi-threaded-environment-tp5757354p5757368.html Sent from the Camel - Users mailing list archive at Nabble.com.