Artigo Java Magazine 06 - Dicas e Soluções

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Artigo publicado pela Java Magazine 06.

Esse artigo faz parte da revista Java Magazine edição 06. Clique aqui para ler todos os artigos desta edição

Dicas e Soluções

Rollback em EJBs

Os desenvolvedores que trabalham com Enterprise JavaBeans conhecem as interfaces javax.ejb.SessionContext e javax.ejb.EntityContext, disponíveis desde a primeira versão da especificação de EJB. O método setRollbackOnly() está em ambas as interfaces, visto que são subinterfaces de javax.ejb.EJBContext. Chamá-lo indica para o container EJB que o único final possível para a transação atual é um rollback.

A questão é que grande parte dos desenvolvedores acredita que lançar uma exceção qualquer a partir de um dos métodos de um EJB irá cancelar a transação. Mas não é bem assim. Somente exceções que herdam de java.lang.RuntimeException podem ser interpretadas como uma indicação de rollback – podem porque o container pode simplesmente descartar a instância e tentar utilizar outra no lugar, dependendo das circunstâncias em que forem lançadas. Portanto, a única forma de garantir que uma transação seja cancelada é chamar setRollbackOnly() na instância de javax.ejb.EJBContext de seu EJB. Observe que isso só se aplica a EJBs com transações gerenciadas pelo container (CMT). Mais informações em:

 java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/ejb/EJBContext.html#setRollbackOnly().

Recuperando sessões após quedas do container

A maioria dos containers web permite que sessões sejam persistidas e recuperadas mesmo após uma queda do container. No entanto, para  tirar proveito desse mecanismo é necessário que todos os objetos armazenados nos objetos HttpSession sejam serializáveis – ou seja, suas classes devem implementar a interface java.io.Serializable direta ou indiretamente e que sejam também serializáveis todas as suas variáveis de instância não-transientes. Se o seu código seguir esse padrão, provavelmente apenas uma propriedade na configuração de seu servidor precisará ser alterada para que as sessões de seus usuários sobrevivam às paradas programadas e às inesperadas. Mais em:"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?