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.