Java Transaction API
A Java Transaction API, ou JTA, é uma API pertencente a plataforma Java EE. Ela disponibiliza uma interface para a demarcação de transações em aplicações escritas na linguagem Java. Esta interface é a mesma independentemente da forma como foi implementado o monitor de transação. A JTA é um padrão definido pela JSR 907.
Índice |
[editar] Características
A JTA é uma API de alto nível utilizada por desenvolvedores de aplicações para a plataforma Java. Através da interface JTA o desenvolvedor interage com o monitor de transação, normalmente implementado em um servidor de aplicações, para determinar as fronteiras de uma transação dentro de uma aplicação, isto é, através da interface JTA ele define o ínicio da transação e determina se ela será confirmada (commit) ou não (rollback).
A JTA é um mapeamento para a plataforma Java do padrão XA, que permite aos recursos, como um SGBD ou servidor JMS, participarem de uma transação global gerenciada por um monitor de transação externo.
[editar] Interfaces
[editar] User Transaction
Esta interface permite que o desenvolvedor de aplicações defina as fronteiras das transações no código do programa. Através de comandos da linguagem Java o desenvolvedor interage com o monitor de transação. A interface Java que define este comportamento é: javax.transaction.UserTransaction.
[editar] Transaction Manager
Quando o gerenciamento das transações é deixado sob responsabilidade de um servidor de aplicações, a interface utilizada é a javax.transaction.TransactionManager. É o caso das aplicações implementadas através dos EJBs chamados de Container Managed Transactions ( transações gerenciadas pelo container). Neste caso as fronteiras transacionais são definidas na configuração da aplicação e não, pelo menos não diretamente, no código.
[editar] Transaction
Esta interface permite que operações sejam realizadas sobre uma transação. Toda transação global tem um objeto do tipo javax.transaction.Transaction associado. O servidor de aplicações tem acesso a esse objeto através do método getTransaction() da interface javax.transaction.TransactionManager.
[editar] XA Resource
Para que um recurso participe de uma transação global JTA, ele deve implementar a interface javax.transaction.xa.XAResource. Um driver JDBC ou um provedor JMS que suporte transações distribuídas deve implementar esta interface. Esta interface mapeia a interface do padrão XA para a plataforma Java.
[editar] Xid
Esta interface implementa a infraestrutura de identificação de transações do padrão XA. Ela define meios para o acesso do id (identificador) da transação. Esta interface não é visível pelo desenvolvedor ou pelo servidor de aplicações.
[editar] Implementações
Os servidores de aplicação que suportam o padrão Java EE implementam monitores de transação compatíveis com a API JTA. A SDK da Java EE, da Oracle Corporation, inclui o monitor Java Transaction Service (JTS).