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.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки