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.

Avalie esse artigo

Relevância
Estilo/Redação

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 mensagens dessa discussão
Comentários da comunidade

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

Receber mensagens dessa discussão

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

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.