I'm looking into this one and found that camel-sjms is using individual JMS
sessions for each endpoints.
As I commented, it causes inconsistency if the process is terminated in the
middle of processing those synchronizations, so it doesn't make much sense in
terms of atomicity. I think it would be better to add an option to share a
single JMS Session among SJMS endpoints, and if it's disabled we can just
commit those immidiately for each producer/consumer (i.e. remove
synchronization usage). And I'd like to enable this option by default as I
don't see any situation that they don't want to share the Session,
transacted=false would be enough. Thoughts?
If it sounds OK for you guys, I'll make a PR for it.