Введение
Спецификация Jakarta EE для доступа к транзакционным ресурсам
Jakarta Transactions (JTA; ранее Java Transaction API), один из API Jakarta EE, обеспечивает выполнение распределенных транзакций с использованием нескольких X/Open XA-ресурсов в среде Java. JTA была спецификацией, разработанной в рамках Java Community Process как JSR 907. JTA предоставляет возможности:
The Jakarta Transactions (JTA; formerly Java Transaction API), one of the Jakarta EE APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment. JTA was a specification developed under the Java Community Process as JSR 907. JTA provides for:
определение границ транзакций;
X/Open XA API, позволяющий ресурсам участвовать в транзакциях.
X/Open XA API allowing resources to participate in transactions.
Архитектура X/Open XA
В архитектуре X/Open XA менеджер транзакций или монитор обработки транзакций (монитор ТП) координирует транзакции между множеством ресурсов, таких как базы данных и очереди сообщений. Каждый ресурс имеет свой собственный менеджер ресурсов. Менеджер ресурсов обычно предоставляет свой собственный API для управления ресурсом, например, JDBC API для работы с реляционными базами данных. Кроме того, менеджер ресурсов позволяет монитору ТП координировать распределенную транзакцию между собой и другими менеджерами ресурсов. Наконец, существует приложение, которое взаимодействует с монитором ТП для начала, фиксации или отката транзакций. Приложение также взаимодействует с отдельными ресурсами, используя их собственные API для изменения данных в ресурсе.
Интерфейс программирования приложений
Jakarta Transactions API состоит из трех элементов: интерфейса разграничения транзакций приложения высокого уровня, интерфейса менеджера транзакций высокого уровня, предназначенного для сервера приложений, и стандартной Java-реализации протокола X/Open XA, предназначенной для менеджера транзакционных ресурсов.
Поддержка транзакций пользователей в JNDI
UserTransaction должна быть доступна по адресу java:comp/UserTransaction (если в окружении установлена реализация JTA).