Spring JMS 2-phase-commit в java SE

Я не работаю под Java EE.

Я хочу иметь транзакцию XA с использованием Spring для разделения транзакции между БД и JMS.

Предоставляет ли Spring такую ​​функциональность или я должен использовать внешний диспетчер транзакций, такой как Atomikos?

В настоящее время я использую DataSourceTransactionManager для БД, и я вижу, что я также могу использовать JMSTransactionManager. Они работают вместе? Не ясно из документации, так как упоминается JtaTransactionManager.

Пожалуйста, порекомендуйте.

Яир

2 ответа

Spring предоставляет только основу для управления транзакциями, поэтому он не предоставляет никакого менеджера транзакций. Если вы запускаете свое приложение вне контейнера Java EE и вам нужна транзакция между ресурсами, такими как БД и JMS, вы должны использовать внешний TransactionManager, такой как Atomikos или JOTM (Java Open Transaction Manager).

Вы можете обратиться к http://www.javaworld.com/javaworld/jw-04-2007/jw-04-xa.html за более подробной информацией о XA с использованием Spring.

Они локальные, но Spring поддерживает XA (см. этот пост для объяснения и примера кода): http://blog.springsource.com/2011/08/15/configuring-spring-and-jta-without-full-java-ee/

Другие вопросы по тегам