ActivitySession 样本
WebSphere® Application Server 提供了一些 ActivitySession 样本。
- MasterMind 样本
- 此样本基于游戏 MasterMind。它包含下列组件:
- 使用 ActivitySession 控制种类属性集配置为容器的 servlet,其访问有状态会话 Bean。
- 有状态会话 Bean,使用包含瞬态状态数据的 ActivitySession 的激活策略配置。
servlet 在启动每个新游戏时开始 HttpSession,并在每个游戏结束时结束它;因此 ActivitySession 持续每个游戏的持续时间。ActivitySession 激活策略停止 Bean 的钝化,因此瞬时数据维持在内存中。此样本说明 Web 容器中 HttpSession 与 ActivationSession 之间的关联,以及以 ActivitySession 为作用域的激活策略。
- 企业应用程序客户机容器和一阶段落实数据源支持的 CMP 实体 Bean
- 在此样本中,使用下列属性配置实体 Bean:
- TX_NOT_SUPPORTED
- REQUIRES 的 ActivitySession 容器管理策略
- ActivitySession 的 LTC 边界
- ContainerAtBoundary 的 LTC 解析控制
客户机访问 UserActivitySession,开始 ActivitySession,更新此 Bean 的两个实例,然后结束 ActivitySession。它执行两次,一次使用 EndModeReset,一次使用 EndModeCheckpoint。此样本证明下列功能:- 客户机对 UserActivitySession 接口的访问
- 作用域设定为 ActivitySession,并自动采用此 ActivitySession 的完成方向作为其完成方向的多个资源管理器局部事务 (RMLT)
实体 Bean 还保持每次方法调用(用于持久数据的 get 和 set)增加的瞬态变量。在 ActivitySession 结束时检查此值,以显示使用相同的 Bean 实例。客户机检查正确结果。
- 企业应用程序客户机容器,以及带有不同 ActivitySession 类型的两个会话 Bean
- 此样本包含企业应用程序客户机容器,以及下列会话 Bean:
- SLB1,使用 ActivitySession 类型的 Bean 配置的无状态会话 Bean。
- SFB2,使用 ActivitySession 类型为 Requires,LTC 边界为 ActivitySession,LTC 解析控制为 APPLICATION,以及 LTC 未解析操作为 ROLLBACK 的有状态会话 Bean。
使用 TX_NOTSUPPORTED 配置两个 Bean。
此样本使用下列步骤:- 客户机启动 SLB1
- SLB1 访问 UserActivitySession 接口,开始 ActivitySession,然后对 SFB2 调用方法
- SFB2 访问 UserActivitySession 接口,开始 ActivitySession,然后对 SFB2 调用方法
- SFB2 获取连接 (setAutoCommit false),然后使用 JDBC 更新一阶段数据源。
- SLB1 可选择对 SFB2 调用另一方法,以完成落实或回滚 RMLT 的工作。
- SLB1 然后使用 EndModeCheckpoint 结束 ActivitySession。
此样本证明下列功能:- 虽然 RMLT 包含绑定到 ActivitySession,但是 ActivitySession 完成方向与 RMLT 的方向不相关。
- 当 RMLT 未完成时,使用未解析操作的容器。
- 使用 UserActivitySession 接口的 Bean 管理 ActivitySession。
样本检查正确的结果,然后将报告返回给客户机。