We are planning to write a bunch of camel contexts which contain routes using only local endpoints (the vm component). To get everyone talking to one another, we'll create a "wiring" context which connects the dots. I was wondering how this will work with transactions. Suppose I have a few routes like this...
In "wiring" context: from("jms:queue:inputQueue").transacted().to("context:a:in"); from("context:a:out").transacted().to("jms:queue:outputQueue"); In context "a": from("vm:in").transacted().to(...).to("vm:out"); I assume the transaction won't span through the route in context "a", correct? What happens here? Let's say there's some failure in the "..." part of my route with a database or something. The original message won't go back onto the "inputQueue" will it? My understanding is that the transacted() part will start a transaction once the route begins and try to commit it when the route ends.