ActivitySession サンプル
WebSphere® Application Server は、ActivitySession サンプルをいくつか提供します。
- MasterMind サンプル
- このサンプルは、ゲーム MasterMind に基づいています。 以下のコンポーネントで構成されています。
- サーブレット。コンテナーに設定された ActivitySession 制御と同類の属性で構成されています。ステートフル・セッション Bean にアクセスします。
- Stateful Session Bean。過渡状態データを含む ActivitySession の活動化ポリシーで構成されています。
サーブレットは、それぞれの新規ゲームの開始時に HttpSession を開始し、 それぞれのゲームの終了時点で終了します。 したがって、ActivitySession は各ゲームの期間中存続します。 ActivitySession 活動化ポリシーは、 Bean が非活性化されないようにします。したがって、一時データはメモリーに残ります。 このサンプルでは、Web コンテナー内での HttpSession と ActivationSession 間のアソシエーション、 および ActivitySession でスコープ宣言された活動化ポリシーをデモンストレーションします。
- エンタープライズ・アプリケーション・クライアント・コンテナー、 および 1 フェーズ・コミット・データ・ソースにより支援される CMP エンティティー Bean
- この例では、Entity Bean は以下のプロパティーで構成されています。
- TX_NOT_SUPPORTED
- ActivitySession コンテナー管理ポリシー: REQUIRES
- LTC 境界: ActivitySession
- LTC Resolution Control: ContainerAtBoundary
クライアントは、UserActivitySession にアクセスし、ActivitySession を開始して、Bean の 2 つのインスタンスを更新した後、 ActivitySession を終了します。クライアントは、EndModeReset を使用し、次に EndModeCheckpoint を使用して、これを 2 度行います。 このサンプルでは、以下の機能をデモンストレーションします。- UserActivitySession インターフェースへのクライアント・アクセス
- ActivitySession へスコープ宣言され、ActivitySession のリソース・マネージャー・ローカル・トランザクション (RMLT) から完了指示を自動取得する複数の RMLT
エンティティー Bean は、それぞれのメソッド呼び出し (パーシスタント・データに対する gets および sets) ごとに増分される一過性変数も保持します。この値は、ActivitySession の終了前に、同一の Bean インスタンスが使用されていることを証明するためにチェックされます。 クライアントは、正しい結果であるかどうかをチェックします。
- エンタープライズ・アプリケーション・クライアント・コンテナー、 および異なる ActivitySession タイプを持つ 2 つのセッション Bean
- この例は、エンタープライズ・アプリケーション・クライアント・コンテナー、
および以下のセッション Bean で構成されています。
- SLB1。ActivitySession タイプが Bean として構成された Stateless Session Bean。
- SFB2。ActivitySession タイプが Requires、LTC 境界が ActivitySession、LTC Resolution Contol が APPLICATION、LTC Unresolved Action が ROLLBACK として構成された Stateful Session Bean。
両方の Bean ともに TX_NOTSUPPORTED で構成されています。
このサンプルでは、以下のステップを実行します。- クライアントが 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 管理 ActivitySessions Bean。
この例では、正しい結果かどうかを検査して、クライアントにその結果の報告を戻します。