O conceito de transações é essencial para garantir a integridade e consistiencia. Um entendimento completo de transações requere familiaridade com modelos básicos e estratégias. Mark Richards comenta " É um erro comum confundir modelos de transações com estratégias de transações." Esse artigo cobre " os três modelos de transações suportados pela plataforma Java e introduz quatro estratégias de transações que usam aqueles modelos. Usando exemplos do Framework Spring e a especificação Enterprise JavaBeans (EJB) 3.0, Mark explica como os modelos de transação trabalham e como eles podem formular o básico para desenvolver estratégias de transação variando do processamento de transação básico para o sistema de processamento de alta rapidez."
A plataforma Java suporta três modelos de transação:
- Modelo de Transação Local - transações são gerenciadas pelo recurso de Banco de Dados e não no container da aplicação ou framework. O desenvolvedor gerencia mais conexão do que transações.
- Modelos de Transação Programática - O programador obtém uma transação de um gerenciador de transações mais depois devem escrever seus próprios códigos para iniciar, comitar e dar uma exceção, fazer rollback de transações.
- Modelos de Transação Declarativos - o modelo mais comum, também conhecido como Container Gerenciador de Transações. Nesse modelo o container gerencia as transações ativamente, o desenvolvedor define (declara) o comportamento e parâmetros da transação.
Mas esse suporte é limitado para uma descrição de transações básicas e comportamentos esperados, descrição da implementação, e regras e sintaxe para uso. A estratégia de transação é necessária para responder questões como: 'Quando devo usar os atributos REQUIRED vs. MANDATORY, diretivas específicas, um modelo versus outro, ou como otimizar para uma situação particular?
Os benefícios e as falhas dos modelos de transações são discutidos por Mark no artigo.
Estratégias para usar modelos específicos e usar um dado modelo de uma maneira apropriada são introduzidos nesse artigo. As quatro estratégias apresentadas são:
Mark Richards é autor do mini-book Java Transaction Design Strategies da InfoQ que fornece informações adicionais para esse tópico importante.