ActivitySession e Contextos de Transação

Este tópico descreve o relacionamento hierárquico entre contextos de transação e do ActivitySession. Este relacionamento, definido pelo serviço ActivitySession, requer que qualquer contexto de transação esteja completamente dentro ou completamente fora de um contexto do ActivitySession.

Um contexto do ActivitySession é muito semelhante a um contexto de transação e estende as opções de ciclo de vida para a ativação de enterprise beans; ele pode englobar uma ou mais transações. O contexto do ActivitySession é um contexto distribuído que, como o contexto da transação, pode ser gerenciado pelo bean ou pelo contêiner. Um contexto do ActivitySession é utilizado principalmente por um cliente para abranger o ciclo de vida de um enterprise bean que é utilizado além ou na falta de transações individuais iniciadas pelo cliente.

As ActivitySessions têm menos código extra do que as transações e podem ser utilizadas no lugar das transações que são utilizadas apenas para abranger o ciclo de vida de um enterprise bean chamado. Para um bean com um critério de ativação ActivitySession, a duração de qualquer RMLT (Resource Manager Local Transaction) iniciada pelo bean pode ser ligada pela duração do ActivitySession em vez de pelo método bean no qual a RMLT foi iniciada. Isto proporciona flexibilidade e potencial para usar RMLTs em um enterprise bean, além dos cenários descritos nas especificações EJB (Enterprise JavaBeans). As especificações EJB definem que as RMLTs precisam ser concluídas antes do encerramento do método do bean, pois o método do bean é o único limite de retenção para transações locais disponíveis nessas especificações.

As regras a seguir definem o relacionamento entre as transações e ActivitySessions.
  • O contêiner EJB ou da Web sempre utiliza um LTC (Local Transaction Containment) se não houver nenhuma transação global presente. Um LTC pode ter o escopo definido pelo método ou pelo ActivitySession.
  • Antes da execução de um método, o contêiner assegura que sempre haverá um contexto de LTC ou de transação global, mas nunca ambos.
  • ActivitySessions não podem ser aninhados uns aos outros. Qualquer tentativa de iniciar uma ActivitySession aninhada resulta em uma com.ibm.websphere.ActivitySession.NotSupportedException em UserActivitySession.beginSession().
  • Uma ActivitySession pode englobar completamente uma ou mais transações globais.
  • O aplicativo pode encerrar uma ActivitySession com uma operação para marcar ou reconfigurar todos os recursos. A operação endSession(EndModeCheckpoint) cria pontos de verificação para o trabalho coordenado no ActivitySession e, em seguida, encerra o contexto. A operação endSession(EndModeReset) é reconfigurada para o último ponto de consistência, o trabalho coordenado em ActivitySession e, em seguida, encerra o contexto.
  • Uma ActivitySession não pode ser englobada por uma transação global nem os limites da ActivitySession e da transação global devem se sobrepor. Qualquer tentativa de iniciar uma ActivitySession na presença de um contexto de transação global resulta em uma com.ibm.websphere.ActivitySession.NotSupportedException em UserActivitySession.beginSession(). Qualquer tentativa de chamar endSession(EndModeCheckpoint) em uma ActivitySession que contém uma transação global incompleta resulta em uma com.ibm.websphere.ActivitySession.ContextPendingException. Nem o contexto da transação global nem o contexto da ActivitySession são afetados. Se for chamado, endSession(EndModeReset), ActivitySession será reconfigurado e as transações globais marcadas com rollback_only.
  • Cada transação global completamente englobada por uma ActivitySession é independente de cada uma das outras transações globais daquela ActivitySession. A reversão de uma transação global não afeta nenhuma outra nem a ActivitySession em si.
  • Os contextos de transação global e ActivitySession podem coexistir com um ActivitySession encapsulando uma ou mais transações globais executadas em série.
  • Os métodos home EJB não podem participar de um ActivitySession porque essa situação poderia causar conflitos. Métodos EJB home executam em seus próprios LTCs independentes.

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cas_ogtlt
Nome do arquivo: cas_ogtlt.html