Gerenciando Transação em EJB

O gerenciamento de transação é um dos conceitos mais
importantes no desenvolvimento de sistemas
coorporativos. Ele permite que um bloco de código
possa ser tratado como uma larga e atômica unidade de
trabalho. 

Em Enterprise JavaBeans o gerenciamento de transação
pode ser feito de duas formas:

1) Transações Programáticas

        Nesse tipo de transação o controle é feito
explicitamente por código. O código do Bean deve
chamar o begin(), commit() ou rollback(). Dessa forma
o usuário tem mais controle porém se desfoca da
programação do negócio para preocupar-se com
infra-estrutura. Esse tipo de transação não pode ser
aplicado em Entity Beans.

2) Transações Declarativas
        
        Com transações declarativas o Bean não precisa
preocupar-se com o gerenciamento da transação, o
Container EJB assume esse papel. As transações
declarativas facilitam o desenvolvimento uma vez que
não precisamos acessar uma API de transação (JTA)
diretamente. 
        É necessário instruir ao Container sobre o uso de
transações declarativas ou programáticas, como
mostrado no deployment descriptor abaixo:

<ejb-jar>
<enterprise-beans>
<session>
        <ejb-name>DicasList </ejb-name>
        <home>ejb.DicasListHome </home>
        <remote>ejb.DicasList</remote>
        <ejb-class>ejb.DicasListBean</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>


Segundo a especificação EJB temos os seguintes tipos
de transações que o Container pode gerenciar:

1) Required - Este tipo de transação usa uma transação
já existente, caso não existe cria uma.
2) RequiresNew - Sempre cria uma nova transação.
3) Supports - Reaproveita a transação existente, caso
não exista não cria uma nova.
4) Mandatory - O método que é mandatory deve ser
chamado com um contexto transacional já existente,
caso contrário um erro é gerado.
5) NotSupported - Nunca usa transação
6) Never - Nunca usa transação e caso seja chamado
dentro de um contexto transacional um erro é
disparado.


Gleydson Lima
[EMAIL PROTECTED]
JSPBrasil (www.jspbrasil.com.br)

_______________________________________________________________________
Yahoo! Mail
O melhor e-mail gratuito da internet: 6MB de espaço, antivírus, acesso POP3, filtro 
contra spam. 
http://br.mail.yahoo.com/

================================================================================
[dicas-list] circula diariamente com pequenas dicas sobre a plataforma Java e é
mais um serviço da Sociedade de Usuários Java - http://www.soujava.org.br
      *** SouJava - Fortalecendo a Comunidade Java Brasileira! ***
- Para contribuir com uma dica, envie um e-mail para [EMAIL PROTECTED]
- Participe de outras listas de discussão sobre a linguagem Java.
  Saiba mais em http://www.soujava.org.br/lista.htm
--------------------------------------------------------------------------------
- Para assinar este boletim: mailto:[EMAIL PROTECTED]
- Para cancelar sua assinatura: mailto:[EMAIL PROTECTED]
- Dicas anteriores: http://www.mail-archive.com/dicas-list%40soujava.org.br
- Para discutir sobre as dicas, acesse o Mundo OO (http://www.mundooo.com.br)


Responder a