Currently, when using
jms:message-driven-channel-adapter -> ... -> jms:outbound-channel-adapter
You have to inject a JmsTemplate with sessionTransacted in the outbound adapter, to participate in the container's transaction.
As a convenience, we should add session-transacted to the adapter.
Also, the inbound-channel-adapter incorrectly allows 'transacted' for the acknowledge-mode. This does not work; for a JmsTemplate you have to set sessionTransacted to true.
The parser sets the acknowledgeMode to an invalid value (0). YMMV, but with ActiveMQ it means an adapter so configured closes the session with no ack and the message is continually redelivered.
Add session-transacted to the inbound adapter too and disallow transacted.