ActivitySession サービスは、Java 2 Platform, Enterprise Edition (J2EE) 1.4 Activity Service の実装に加えて、上位サービスとして実装されます。作業単位スコープを提供し、そのスコープ内でリカバリー不能リソース または 2 フェーズ以外のリソースを管理できます。また、トランザクションに関して 分散および連携の両方の方法で管理します。 このサンプル・アプリケーション集を使用して、ActivitySession サービスの使用を検討します。
1 時間 未満
サンプルを使用するには、 製品ダウンロード・サイトから ActivitySession サービスのアプリケーション・サンプル・ファイルを ダウンロードします。以下のステップを実行します。
サーブレットでは、MasterMind ゲーム用のユーザー・インターフェースが提供されます。 このゲームでは、HTTP セッションを使用して ActivitySession ライフサイクルを制御し、 エンタープライズ Bean と通信します。エンタープライズ Bean は、状態を保持し、 ゲームのロジックを提供します。このゲームの目的は、 開始時に生成される 4 つのエレメントから構成されるコードを推測することです。1 回の推測ごとに、 推測の中のいくつのエレメントがターゲットに存在しており、 またそれらのエレメントのいくつが正しく配置されているかによって、ターゲット・コードの ID にヒントが与えられます。
このサンプルは 1 つのクライアントで構成されます。このクライアントは、 ActivitySessions サービスの開始と終了を行い、エンティティー Bean を更新します。サンプルは、 UserActivitySession インターフェース、コンテナー管理 ActivitySessions サービス、およびリソース管理ローカル・トランザクションのコンテナー解決に クライアントからアクセスする例を示します。これらのトランザクションは、ActivitySession の ローカル・トランザクション内包 (LTC) 境界を持つエンタープライズ Bean 内で 開始されます。クライアントは、ActivitySession が EndModeCheckpoint で完了したときに Bean インスタンスへの更新がコミットされ、EndModeReset が使用されたときにロールバックされることを検証します。
このサンプルは、ステートレス・セッション Bean のメソッドを呼び出す クライアントから構成されます。このセッション Bean は、Bean 管理アクティビティー・セッションを 使用し、ActivitySessions の開始および終了を UserActivitySession インターフェースを用いて 行います。これらのアクティビティー・セッションの間にステートフル・セッション Bean が アクセスされます。このステートフル・セッション Bean は、コンテナー管理 ActivitySession サービス、ActivitySession の LTC 境界、およびアプリケーションの LTC 解決制御を使用し、データベース内のデータを更新するために 複数回呼び出されます。場合によっては、このステートフル・セッション Bean は リソース・マネージャー・ローカル・トランザクション (RMLT) を コミットまたはロールバックして完了するよう指示されます。 RMLT は完了しないことがあります。 その後、ステートレス・セッション Bean は、ActivitySession サービスを 完了するとともに、結果が想定される動作と整合性がとれているかどうかを クライアントに報告します。