In short, you cannot get two-phase commit support without JTATransactionManager and XA data sources.
What you are observing is the coordination of two local transactions that support only single-phase commit. Roughly performing this sequence of events ...
- Run JMS Transaction
- Reading JMS Message
- Run JDBC Transaction
- Write to database
- Commit JDBC Transaction
- Commit / Acknowledge JMS
JMS, JDBC, JMS , Hibernate/JDBC . - JMS acknowledge="auto" Hibernate .
, , , - Hibernate , , JMS-. , JMS , .
JMS- XA (global), .
JMS- XA, JDBC , JTATransactionManager LastResourceCommitOptimisation. JTATransactionManagers , JOTM
JavaWorld .