Gerência de Transações

Introdução

Transações Locais e Globais (Distribuídas)

Níveis de isolamento

Demarcação transacional em J2EE

Container-Managed Transactions

 

Atributos Transacionais

Exemplo

<?xml version='1.0' encoding="ISO-8859-1" ?>
<ejb-JAR>
...
   <container-transaction>
		<!-- Demarcação transacional declarativa -->
		<method>
			<ejb-name>EmployeeRecord</ejb-name>
			<method-name>*</method-name>
		</method>
		<!-- NotSupported|Supports|Required|RequiresNew|Mandatory|Never -->
		<trans-attribute>Required</trans-attribute>
	</container-transaction>
...
</ejb-JAR>

Bean-Managed Transactions

Rollback

Usando JTA

...
	
	UserTransaction userTransaction = sessionContext.getUserTransaction();
	try{
		userTransaction.begin();
		Connection c1 = ...; // conexão para uma fonte de dados
		// executa algum trabalho
		c1.close();
		Connection c2 = ...; // conexão para outra fonte de dados
		// executa algum trabalho
		c2.close();
		userTransaction.commit();
	}catch (Exception e){
		userTransaction.rollback();
	}
...

Transações com SpringFramework

dacaprograma