BT

Estratégias de Transação Baseadas nos Modelos de Transação Java

por Dave West , traduzido por Ricardo Almeida em 16 Abr 2009 |

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:

  • "A estratégia de orquestração Cliente de Transação é usada quando múltiplas chamadas baseadas no servidor ou chamadas baseadas no modelo da camada cliente compleando uma única unidade de trabalho.
  • A estratégia de Camada API de transação é usada quando você tem métodos grosseiros que atuam como estratégia de entrada primária para funcionalidades back-end. (Chame de serviços, se preferir.)
  • A estratégia de transações de Alta Concorrência, uma variação de estratégia de Camada de API, é usada para aplicações que não podem suportar transações longas da camada da API (geralmente por causa da necessidade de performance e escalabilidade).
  • A estratégia de transação de Alta Rapidez de Processamento é talvez o mais extremo das estratégias de transação. Você usa quando necessita ter um tempo de processamento o mais rápido possível na aplicação e ainda mantém algum grau de atomicidade transacional em seu processamento.

 

 

 

 

Mark Richards é autor do mini-book Java Transaction Design Strategies da InfoQ que fornece informações adicionais para esse tópico importante.

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT