A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Transações em J2EE Mara Denise Coutinho da Silva Sandra Luzia Cortinovi Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas.

Apresentações semelhantes


Apresentação em tema: "Transações em J2EE Mara Denise Coutinho da Silva Sandra Luzia Cortinovi Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas."— Transcrição da apresentação:

1

2 Transações em J2EE Mara Denise Coutinho da Silva Sandra Luzia Cortinovi Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação – Edição 2003/2004 POD – Programação com Objetos Distribuídos

3 2 Transações em J2EE Manuais  Bean-Managed –Programador explicitamente inicia uma transação, controla cada conexão e recurso dentro do contexto da transação e determina quando a transação irá realizar commit ou rollback Automáticas  Container-Managed –Variável de configuração indica quando um método deve ter comportamento transacional. –Container EJB intercepta as chamadas e inicia automaticamente a transação. Ao fim da execução do método, o container realiza commit ou rollback.

4 3 Transações Automáticas Container-Managed simplificam o desenvolvimento; cada método é associado a uma transação; aplicável a qualquer tipo de bean: –session, –entity, –message-driven; atributo transaction no deployment descriptor determina o nível de suporte a transações

5 4 Transações Automáticas - Container-Managed Atributo Transaction Required Método executa no contexto de transação existente. Se não existe transação, o container inicia uma transação antes da execução do método. RequiresNew Método exige que uma nova transação seja iniciada. Caso o método tenha sido chamado dentro de uma transação cliente, o container: (1) suspende a transação cliente; (2) inicia um nova transação; (3) dispara o método; (4) reativa a transação cliente após a execução do método Supports Método executa no contexto de transação existente. Se não existe nenhuma transação, então o método executa sem transação Mandatory O método só executa se já existe uma transação no momento da chamada. Caso não exista, o container gera a exceção NotSupported O método não executa dentro do escopo de uma transação Supports O contexto de transação será ignorado Never Método não executa dentro de transação. Se existir transação ativa no momento da chamada, o container gera exceção

6 5 Rollback em transações automáticas —automaticamente pelo container quando de exceção —explicitamente pelo método setRollbackOnly da interface EJBContext Rollback em transações automáticas —automaticamente pelo container quando de exceção —explicitamente pelo método setRollbackOnly da interface EJBContext Métodos não permitidos em transações automáticas —commit, setAutoCommit e rollback —getUserTransaction —métodos do javax.transaction.UserTransaction Métodos não permitidos em transações automáticas —commit, setAutoCommit e rollback —getUserTransaction —métodos do javax.transaction.UserTransaction Transações Automáticas - Container-Managed

7 6 Transações Manuais - Bean-Managed aplicável a beans do tipo session e message-driven uso de JDBC ou JTA; JDBC : transação controlada pelo SGBD JTA: –transações independentes da implementação –Interface UserTransaction –Procedimentos: 1.Obter a transação do objeto de contexto 2.Definir inicio da transação com begin() 3.Definir pontos de término com commit() ou rollback()

8 7 Transações Manuais - Bean-Managed Retorno com falha Session bean sem estado método deve efetivar ou desfazer a transação antes do retorno Session bean com estado JTA associação entre a instância do bean e a transação é mantida através de múltiplas chamadas do cliente até o fim da transação JDBC a conexão retém a associação entre a instância do bean e a transação; se a conexão é fechada, a associação é perdida

9 8 Timeouts de Transação Automática  propriedade transaction.timeout no arquivo default.properties no diretório config Manual  método setTransactionTimeout da interface UserTransaction Timeouts de Transação Automática  propriedade transaction.timeout no arquivo default.properties no diretório config Manual  método setTransactionTimeout da interface UserTransaction Níveis de Isolamento Grau em que os dados em processo de atualização são visíveis a outras transações Não padronizado pelo J2EE – responsabilidade do SGBD Níveis de Isolamento Grau em que os dados em processo de atualização são visíveis a outras transações Não padronizado pelo J2EE – responsabilidade do SGBD

10 9 Atualizações de Múltiplas Bases de Dados Servidor J2EE Cliente Bean-A invoca método no Bean-A Bases de Dados X X Y Y Z Z inicia transação Bean-B AtualizaAtualiza invoca método no Bean-B AtualizaAtualiza AtualizaAtualiza termina transação

11 10 Atualizações de Múltiplas Bases de Dados Servidor J2EE Cliente Bean-A invoca método no Bean-A Bases de Dados X X Y Y inicia transação termina transação Bean-B AtualizaAtualiza invoca método no Bean-B AtualizaAtualiza


Carregar ppt "Transações em J2EE Mara Denise Coutinho da Silva Sandra Luzia Cortinovi Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas."

Apresentações semelhantes


Anúncios Google