Amostras de ActivitySession
O WebSphere Application Server fornece algumas amostras de ActivitySession.
- Amostra MasterMind
- Essa amostra é baseada no jogo MasterMind. Ela consiste nos seguintes componentes:
- Um servlet, configurado com o atributo de tipo de controle ActivitySession definido para Contêiner, que acessa um bean de sessão stateful.
- Um bean de sessão com preservação de estado, configurado com um critério de ativação do ActivitySession contendo dados de estado transitório.
O servlet inicia um HttpSession no início de cada novo jogo e o finaliza ao final de cada jogo; portanto, um ActivitySession permanece ativo por toda a duração de cada jogo. O critério de ativação ActivitySession impede que o bean torne-se passivo e, assim, os dados transitórios permanecem na memória. Esta amostra demonstra a associação entre HttpSession e ActivationSession no contêiner de Web e a política de ativação no escopo do ActivitySession.
- O contêiner do cliente de aplicativo corporativo e um bean de entidade CMP retornados por uma origem de dados one-phase commit
- Nessa amostra, o bean de entidade é configurado com as seguintes propriedades:
- TX_NOT_SUPPORTED
- Um critério gerenciado pelo contêiner do ActivitySession do REQUIRES
- Um limite LTC de ActivitySession
- Um Controle de Resolução LTC de ContainerAtBoundary
O cliente acessa UserActivitySession, inicia um ActivitySession, atualiza duas instâncias do bean e, em seguida, finaliza o ActivitySession. Faz isso duas vezes, utilizando EndModeReset e, em seguida, EndModeCheckpoint. Essa amostra demonstra a seguinte funcionalidade:- Acesso do cliente à interface UserActivitySession
- Várias RMLTs (resource manager local transactions) colocadas no escopo do ActivitySession e automaticamente tomando sua direção de conclusão a partir da ActivitySession
O bean de entidade também contém uma variável transitória incrementada por cada chamada de método (gets e sets para os dados persistentes). Esse valor é verificado antes do final do ActivitySession para mostrar que a mesma instância do bean é utilizada. O cliente verifica se os resultados estão corretos.
- Um contêiner do cliente de aplicativo corporativo e dois beans de sessão com tipos diferentes de ActivitySession
- Esta amostra consiste em um contêiner do cliente de aplicativo corporativo e
nos seguintes beans de sessão:
- SLB1, um bean de sessão sem preservação de estado configurado com um Tipo de ActivitySession do Bean.
- SFB2, um bean de sessão com preservação de estado configurado com um Tipo de ActivitySession do Requires, um limite LTC do ActivitySession, Controle de Resolução LTC do APPLICATION e uma Ação Não Resolvida LTC do ROLLBACK.
Os dois beans são configurados com TX_NOTSUPPORTED.
Essa amostra usa as seguintes etapas:- O cliente inicia SLB1
- SLB1 acessa a interface UserActivitySession, inicia um ActivitySession, em seguida, chama um método em SFB2
- SFB2 acessa a interface UserActivitySession, inicia um ActivitySession, chama um método em SFB2
- SFB2 obtém uma conexão (setAutoCommit false), depois, utiliza JDBC para atualizar uma origem de dados de fase única.
- Opcionalmente, SLB1 chama um método separado em SFB2 para concluir o trabalho consolidando ou revertendo a RMLT.
- SLB1, então, finaliza o ActivitySession com um EndModeCheckpoint.
Essa amostra demonstra a seguinte funcionalidade:- A direção de conclusão do ActivitySession é desconectada para a direção das RMLTs, apesar da restrição das RMLTs estar ligada a ActivitySession.
- O contêiner utilizando a ação não resolvida quando um RMLT não estiver concluído.
- Um bean ActivitySessions gerenciado por bean utilizando a interface UserActivitySession.
A amostra verifica se os resultados estão corretos e relata os mesmos ao cliente.