hey guys, while working on a solution for a client, I ran into the need to "synchronize" multiple routes that modify the same data (users, orders, etc) to prevent collisions (stale writes, etc). Is there an existing way to do this that I've overlooked?
In the past, I've relied on http://activemq.apache.org/message-groups.html AMQ message groups for JMS based routes and Hazelcast to span routes/containers. I feel this would be a good fit for the Camel DSL. Has anyone looked into this in the past? After doing some quick research, it seems like Java http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/Lock.html Lock seems to be the way to go. Also, Hazelcast can extend this to be distributed across VMs. So, I've been playing around with adding distributed locking support with Hazelcast (see https://issues.apache.org/jira/browse/CAMEL-4397 CAMEL-4397 ) and wanted to get some feedback on doing this. In particular, I'm using a Lock instance stored in a ThreadLocal variable (to ensure that the same thread releases the lock). Does anyone see any issue with this approach? If all goes well with this, I was planning on also adding a DSL API to provide a basic support for (non distributed) http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/ReentrantLock.html ReentrantLocks . something like this... from(route1).lock(userId).process(processor1).unlock(); from(route2).lock(userId).process(processor2).unlock(); Any advice/comments are welcome...thanks ----- Ben O'Day IT Consultant -http://consulting-notes.com -- View this message in context: http://camel.465427.n5.nabble.com/discuss-implementing-Locks-in-Camel-tp4775904p4775904.html Sent from the Camel Development mailing list archive at Nabble.com.