Может ли tx:jta-transaction-manager
использовать идентификатор в качестве имени, чтобы я мог передать его как REF моему уровню обслуживания, как показано ниже?
<tx:jta-transaction-manager>
представляет диспетчер транзакций как Бин в контексте Spring с именем "transactionManager
".
Может ли tx:jta-transaction-manager
использоваться только с контейнером J2EE?
Цитирование Глава 9. Управление транзакциями из документации Spring:
Нужен ли сервер приложений для управления транзакциями?
транзакция Spring Framework
поддержка управления значительно
меняет традиционное мышление
когда приложение J2EE требует
сервер приложений.
В частности, вам не нужно
Сервер приложений просто иметь
декларативные транзакции через EJB. В
факт, даже если у вас есть приложение
сервер с мощными возможностями JTA,
вы вполне можете решить, что весна
Рамочные декларативные транзакции
предложить больше силы и гораздо больше
продуктивная модель программирования, чем EJB
CMT.
Обычно вам нужно приложение
возможность JTA сервера, только если вы
нужно подключить несколько транзакционных
ресурсы, и для многих приложений
возможность обрабатывать транзакции
через несколько ресурсов не является
требование. Например, многие
высокопроизводительные приложения используют один,
очень масштабируемая база данных (например,
Oracle 9i RAC). Автономная транзакция
такие менеджеры, как транзакции Atomikos
и JOTM - другие варианты. (Конечно
вам может понадобиться другой сервер приложений
такие возможности, как JMS и JCA.)
Наиболее важным моментом является то, что с
Spring Framework вы можете выбрать
когда масштабировать ваше приложение до
полноценный сервер приложений. Ушел
те дни, когда единственная альтернатива
чтобы с помощью EJB CMT или JTA было написать
код с использованием локальных транзакций, таких как
те, на соединениях JDBC, и сталкиваются с
здоровенная переделка, если вам когда-нибудь это нужно
код для запуска в глобальном,
Управляемые контейнером транзакции. С
только Spring Framework
Конфигурация должна измениться так, чтобы
Ваш код не обязан.
Итак, как объяснено в третьем параграфе, если вы хотите работать с несколькими транзакционными ресурсами, вам понадобятся глобальные транзакции, которые включают сервер приложений с поддержкой JTA. И Сервер приложений с поддержкой JTA означает реальный контейнер J2EE или не J2EE-контейнер (например, Tomcat) с автономным диспетчером транзакций, таким как Atomikos , JOTM , Битроникс , SimpleJTA , JBossTS или GeronimoTM / Jencks .
FWIW, я видел много жалоб на JOTM, я думаю, что у GeronimoTM / Jencks нет документации, я не могу ничего сказать о JBossTS ArjunaTS (за исключением того, что это надежный продукт) SimpleJTA и Bitronix имеют и хорошую документацию, и Atomikos - впечатляющий продукт, также хорошо документированный. Лично я бы выбрал Битроникс или Атомикос.
PS: Честно говоря, если для вас это звучит как китайский, вам, возможно, следует рассмотреть возможность использования единой базы данных (если это вариант, пойти на это! ) или использовать реальный контейнер J2EE, такой как JBoss или GlassFish, как я написал в предыдущем ответе. Не обижайся, но все это JTA не тривиально, и путь JOTM не так прост, если ты не понимаешь, зачем он тебе нужен.