ActivitySession 服务是作为高级服务实现的,并且它还是 Java 2 Platform, Enterprise Edition (J2EE) 1.4 活动服务的实现。它提供了工作单元作用域,可在其中管理不可恢复的资源或者非两阶段资源,并且采用一种既是分布式,又针对事务进行协作的方式执行此操作。使用这组样本应用程序来探究 ActivitySession 服务。
不超过一个小时
要使用这些样本,请从产品下载站点下载 ActivitySession 服务应用程序样本文件。请完成下列步骤:
Servlet 提供了 MasterMind 游戏的用户界面。此游戏使用 HTTP 会话来控制 ActivitySession 生命周期以及与企业 Bean 通信,此企业 Bean 拥有游戏状态并提供游戏的逻辑。此游戏的目标是猜测游戏开始时生成的由四个元素组成的代码。每次猜测时,会针对目标编码的真实内容提供线索,告诉您猜中了目标中存在的几个元素以及有几个元素的位置正确。
此样本包含一个客户机,此客户机用于开始和结束 ActivitySession 服务并更新实体 Bean。此样本说明了客户机对于 UserActivitySession 接口的访问、容器管理的 ActivitySession 服务以及资源管理的本地事务的容器解决办法。这些事务在具有 ActivitySession 的本地事务包含范围 (LTC) 边界的企业 Bean 中启动。客户机将验证在使用 EndModeCheckpoint 完成 ActivitySession 服务时落实了对于 Bean 实例的更新,在使用 EndModeReset 时回滚了这些更新。
此样本包含一个客户机,此客户机对无状态会话 Bean 调用一个方法。此会话 Bean 使用 Bean 管理的活动会话,使用 UserActivitySession 接口来开始和结束 ActivitySession。在进行这些活动会话期间,将访问有状态会话 Bean。将多次调用此有状态会话 Bean(它使用容器管理的 ActivitySession 服务、ActivitySession 的 LTC 边界以及应用程序的 LTC 解析控制)以更新数据库中的数据。有时,会指示有状态会话 Bean 完成资源管理器本地事务 (RMLT) - 落实或者回滚这些事务。有时,RMLT 未完成。然后,无状态会话 Bean 将完成 ActivitySession 服务,并向客户机报告获得的结果是否与预期行为一致。