Spring синхронизирует транзакции Hibernate и JMS
Я работаю над автономным приложением, которое использует JMS и Hibernate.
В документации предлагается использовать JTA, если я хочу, чтобы транзакции проходили через оба ресурса.
Однако сейчас, с аннотированным методом DAO @Transaction (и HibernateTransactionManager), это, похоже, уже работает. Когда я вызываю send () для JmsTemplate, сообщение отправляется не сразу, а сеанс JMS фиксируется с сеансом Hibernate, когда метод возвращается.
Я не знал, как это возможно без JtaTransactionManager, поэтому я проверил исходный код. Оказывается, что и оболочка для Hibernate, и JmsTemplate регистрируют сеансы с помощью TransactionSynchronizationManager, и сеанс JMS будет зафиксирован при фиксации сеанса Hibernate.
В чем разница между этой транзакцией и транзакцией JTA. Могу ли я использовать это, чтобы заменить последний ??