Uma transacção é um conjunto de operações que devem ser vistas como uma única operação.
Imagina a operação de transferência de dinheiro entre duas contas, num banco.
Na prática o que acontecem são duas operações: retirar o dinheiro de uma das contas, adicionar o dinheiro à outra conta.
Estas duas operações são uma transacção e que podem ser feitas de duas ordens diferentes:
A - O dinheiro é retirado da primeira conta.
Acontece um erro ao adicionar o dinheiro à segunda conta (porque a conta não existe, por exemplo).
Tem de ser feito o rollback para creditar o dinheiro retirado da primeira conta.
B - O dinheiro é creditado na segunda conta.
Ao retirar o dinheiro da primeira conta verifica que não tem saldo e tem de fazer rollback para retirar o dinheiro creditado da segunda conta.
Independemente da ordem (A ou B) se ocorrer um erro, tem de haver um rollback para que não haja dinheiro a mais nem dinheiro a menos no final da operação.
[quote=pmlm]Uma transacção é um conjunto de operações que devem ser vistas como uma única operação.
Imagina a operação de transferência de dinheiro entre duas contas, num banco.
Na prática o que acontecem são duas operações: retirar o dinheiro de uma das contas, adicionar o dinheiro à outra conta.
Estas duas operações são uma transacção e que podem ser feitas de duas ordens diferentes:
A - O dinheiro é retirado da primeira conta.
Acontece um erro ao adicionar o dinheiro à segunda conta (porque a conta não existe, por exemplo).
Tem de ser feito o rollback para creditar o dinheiro retirado da primeira conta.
B - O dinheiro é creditado na segunda conta.
Ao retirar o dinheiro da primeira conta verifica que não tem saldo e tem de fazer rollback para retirar o dinheiro creditado da segunda conta.
Independemente da ordem (A ou B) se ocorrer um erro, tem de haver um rollback para que não haja dinheiro a mais nem dinheiro a menos no final da operação.[/quote]
Vale acrescentar que isso define atomicidade. Ou seja, uma transação é atômica quando ela executa absolutamente TUDO ou a qualquer erro ela desfaça absolutamente TUDO, como se nada tivesse acontecido. No bom e velho português é o “tudo ou nada”.
Vale um estudo sobre controle de transações mais a fundo, mas primeiro mantenha seu foco em entender o básico e depois ACID (conceitos de controle de transação, atomicidade, consistencia, integridade(isolamento) e durabilidade).
Quando chegar nesse ponto e for estudar EJB recomendo o livro Enterprise Java Beans 3.0, tem um capítulo muito bom sobre transações.
Mas não se esqueça, um dia de cada vez.