Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

3.2.2.9. Atualização de seu Aplicativo para Ficar de Acordo com a Especificação JPA 2.0

Sumário

A especificação JPA 2.0 requer que um contexto de persistência não possa ser propagado fora da transação JTA. Caso o seu aplicativo utilize apenas contextos de persistência de transação com escopo, o comportamento é o mesmo que no JBoss EAP 6, assim como era nas versões anteriores do servidor do aplicativo, e não requer alterações. No entanto, se o seu aplicativo utiliza um contexto de persistência estentido (XPC) para permitir o enfileiramento ou o agrupamento das alterações de dados, é possível que necessite fazer alterações no seu aplicativo.

Comportamento de propagação do contexto de persistência

Caso o seu aplicativo possua um bean de sessão com monitorização de estado (stateful), Bean1, que usa um contexto de persistência estendido e demanda um bean de sessão sem monitorização de estado (stateless), Bean2, que usa um contexto de persistência de transação com escopo, espera-se que ocorra o seguinte comportamento:

  • Se Bean1 inicia uma transação JTA e realiza a invocação de método Bean2 com a transação JTA ativa, o comportamento no JBoss EAP 6 é o mesmo das versões anteriores e não requer alterações.
  • Se Bean1 não incia uma transação JTA e realiza a invocação de método Bean2, o JBoss EAP 6 não propaga o contexto de persistência estendido ao Bean2. Esse comportamento é diferente das versões anteriores que propagavam o contexto de persistência estendido ao Bean2. Se o seu aplicativo espera que o contexto de persistência estendido seja propagado ao bean com o gerenciador de entidade transacional, o seu aplicativo precisará ser alterado para realizar a invocação dentro de uma transação JTA ativa.