ActivitySession e Políticas de Contêiner de Transação em Combinação

Este tópico fornece detalhes sobre o relacionamento entre as propriedades do descritor de implementação que determinam como o contêiner gerencia os limites da ActivitySession.

Se um enterprise bean usar ActivitySessions, a forma de gerenciamento de limites de ActivitySession pelo contêiner EJB ao delegar uma chamada de método dependerá dos atributos do descritor de implementação do tipo ActivitySession e do Tipo de transação do contêiner configurados para o enterprise bean. A tabela a seguir lista o relacionamento entre essas duas propriedades.

Em cada linha, a coluna final descreve o comportamento que o contêiner EJB terá em relação ao contexto da transação global e da ActivitySession, baseado nas seguintes abreviações:
S n
Um ActivitySession, em que n indica a instância da ActivitySession.
Tn
Uma transação, em que n indica a instância da transação.

Em todos os casos em que o contêiner não inicia ou deixa um contexto de transação global associado ao encadeamento, ele inicia (ou obtém da instância do bean) uma contenção da transação local e a associa ao encadeamento. A duração da restrição de transação local é determinada por uma combinação do descritor de limite de transação local (configurado como parte do descritor de implementação do aplicativo e não mostrado na tabela a seguir) e a presença ou não de um contexto ActivitySession , conforme descrito em ActivitySessions e contextos de transação.

As linhas realçadas em negrito não são permitidas.

Tabela 1. Comportamento do Contêiner para Definições de Implementação dos Critérios de ActivitySession e Transação
Política de ActivitySession do bean (Tipo de ActivitySession) Política de transação do bean (Tipo de transação de contêiner) Contextos recebidos Comportamento do contêiner
Necessário Necessário Nenhuma Iniciar S1, Iniciar T1
S1 Iniciar T1
T1 Suspender T1, Iniciar S1, Iniciar T2
S1, T1 Sem Ação
Requer novo Nenhuma Iniciar S1, Iniciar T1
S1 Iniciar T1
T1 Suspender T1, Iniciar S1, Iniciar T2
S1, T1 Suspender T1, Iniciar T2
Suporte Nenhuma Iniciar S1
S1 Sem Ação
T1 Suspender T1, Iniciar S1
S1, T1 Sem Ação
Não suportado Nenhuma Iniciar S1
S1 Sem Ação
T1 Suspender T1, Iniciar S1
S1, T1 Suspender T1
Obrigatório Nenhuma Exceção
S1 Exceção
T1 Exceção
S1, T1 Sem ação
Never Nenhuma Iniciar S1
S1 Sem Ação
T1 Suspender T1, Iniciar S1
S1, T1 Exceção
Requer novo Necessário Nenhuma Iniciar S1 + T1
S1 Suspender S1, Iniciar S2 + T1
T1 Suspender T1, Iniciar S1 + T2
S1 + T1 Suspender S1 + T1, Iniciar S2 + T2
Requer novo Nenhuma Iniciar S1 + T1
S1 Suspender S1, Iniciar S2 + T1
T1 Suspender T1, Iniciar S1 + T2
S1 + T1 Suspender S1 + T1, Iniciar S2 + T2
Suporte Nenhuma Iniciar S1
S1 Suspender S1, Iniciar S2
T1 Suspender T1, Iniciar S1
S1, T1 Suspender S1 + T1, Iniciar S2
Não suportado Nenhuma Iniciar S1
S1 Suspender S1, Iniciar S2
T1 Suspender T1, Iniciar S1
S1, T1 Suspender S1 + T1, Iniciar S2
Obrigatório Nenhum Exceção
S1 Exceção
T1 Exceção
S1, T1 Exceção
Never Nenhuma Iniciar S1
S1 Suspender S1, Iniciar S2
T1 Suspender T1, Iniciar S1
S1, T1 Suspender S1 + T1, Iniciar S2
Suporte Necessário Nenhuma Iniciar T1
S1 Iniciar T1
T1 Sem Ação
S1, T1 Sem Ação
Requer novo Nenhuma Iniciar T1
S1 Iniciar T1
T1 Suspender T1, Iniciar T2
S1, T1 Suspender T1, Iniciar T2
Suporte Nenhuma Sem Ação
S1 Sem Ação
T1 Sem Ação
S1, T1 Sem Ação
Não suportado Nenhuma Sem Ação
S1 Sem Ação
T1 Suspender T1
S1, T1 Suspender T1
Obrigatório Nenhuma Exceção
S1 Exceção
T1 Sem Ação
S1, T1 Sem Ação
Never Nenhuma Sem Ação
S1 Sem Ação
T1 Exceção
S1, T1 Exceção
Não suportado Necessário Nenhuma Iniciar T1
S1 Suspender S1, Iniciar T1
T1 Sem Ação
S1, T1 Suspender S1 + T1, Iniciar T2
Requer novo Nenhuma Iniciar T1
S1 Suspender S1, Iniciar T1
T1 Suspender T1, Iniciar T2
S1, T1 Suspender S1 + T1, Iniciar T2
Suporte Nenhuma Sem Ação
S1 Suspender S1
T1 Sem Ação
S1, T1 Suspender S1 + T1
Não suportado Nenhuma Sem Ação
S1 Suspender S1
T1 Suspender T1
S1, T1 Suspender S1 + T1
Obrigatório Nenhuma Exceção
S1 Exceção
T1 Sem Ação
S1,T1 Exceção
Never Nenhuma Sem Ação
S1 Suspender S1
T1 Exceção
S1, T1 Suspender S1 + T1
Obrigatório Necessário Nenhuma Exceção
S1 Iniciar T1
T1 Exceção
S1, T1 Sem Ação
Requer novo Nenhuma Exceção
S1 Iniciar T1
T1 Exceção
S1, T1 Suspender T1, Iniciar T2
Suporte Nenhuma Exceção
S1 Sem Ação
T1 Exceção
S1, T1 Sem Ação
Não suportado Nenhuma Exceção
S1 Sem Ação
T1 Exceção
S1, T1 Suspender T1
Obrigatório Nenhuma Exceção
S1 Exceção
T1 Exceção
S1, T1 Sem Ação
Never Nenhuma Exceção
S1 Sem Ação
T1 Exceção
S1,T1 Exceção
Never Necessário Nenhuma Iniciar T1
S1 Exceção
T1 Sem Ação
S1, T1 Exceção
Requer novo Nenhuma Iniciar T1
S1 Exceção
T1 Suspender T1, Iniciar T2
S1,T1 Exceção
Suporte Nenhuma Sem Ação
S1 Exceção
T1 Sem Ação
S1,T1 Exceção
Não suportado Nenhuma Sem Ação
S1 Exceção
T1 Suspender T1
S1,T1 Exceção
Obrigatório Nenhuma Exceção
S1 Exceção
T1 Sem Ação
S1,T1 Exceção
Never Nenhuma Sem Ação
S1 Exceção
T1 Exceção
S1,T1 Exceção
Bean Gerenciado Bean Gerenciado Nenhuma Sem Ação
S1 Suspender S1
T1 Suspender T1
S1, T1 Suspender S1 + T1