Spring Boot: JTA, Bitronix, Java EE
Использование менеджера транзакций Bitronix
Bitronix - это популярная реализация менеджера транзакций JTA с открытым исходным кодом. Вы можете использовать spring-boot-starter-jta-bitronix стартер, чтобы добавить соответствующие зависимости Bitronix в ваш проект. Как и в случае с Atomikos, Spring Boot автоматически настраивает Bitronix и обрабатывает ваши bean-компоненты для обеспечения правильного порядка запуска и завершения работы.
По умолчанию файлы журналов транзакций Bitronix (part1.btm и part2.btm) записываются в каталог журналов транзакций в домашнем каталоге приложения. Вы можете настроить местоположение этого каталога, установив свойство spring.jta.log-dir. Свойства, начинающиеся с spring.jta.bitronix.properties, также связаны с bean-компонентом bitronix.tm.Configuration, что позволяет выполнить полную настройку.
Чтобы несколько менеджеров транзакций могли безопасно координировать одни и те же менеджеры ресурсов, каждый экземпляр Bitronix должен быть настроен с уникальным идентификатором. По умолчанию этот идентификатор представляет собой IP-адрес компьютера, на котором работает Bitronix. Чтобы обеспечить уникальность в производственной среде, вы должны сконфигурировать свойство spring.jta.transaction-manager-id с разными значениями для каждого экземпляра вашего приложения.
Использование управляемого менеджера транзакций Java EE
Если вы упакуете приложение Spring Boot в файл war или ear и развернете его на сервере приложений Java EE, вы можете использовать встроенный менеджер транзакций сервера приложений. Spring Boot пытается автоматически настроить менеджер транзакций, просматривая общие местоположения JNDI (java:comp/UserTransaction, java:comp/TransactionManager и т. д.). Если вы используете службу транзакций, предоставляемую вашим сервером приложений, вы, как правило, также хотите убедиться, что все ресурсы управляются сервером и доступны через JNDI. Spring Boot пытается автоматически настроить JMS путем поиска ConnectionFactory по пути JNDI (java:/JmsXA или java:/XAConnectionFactory), и вы можете использовать свойство spring.datasource.jndi-name для настройки вашего DataSource.
Читайте также:
- Spring Boot: распределенные транзакции с JTA, Atomikos
- Spring Boot: вызов REST сервисов с помощью RestTemplate
- Spring Boot: настройка RestTemplate
Комментарии
Отправить комментарий