ビジネス・アクティビティー・サポートを使用したアプリケーション・コンポーネントを作成するには、
関連するアプリケーション・コンポーネントのデプロイメント記述子に「Run EJB methods under a Business Activity scope」を設定し、
必要に応じて、エラーが発生したときにアプリケーションに使用する補正ハンドラーを作成し指定します。その後、アプリケーションにコンポーネントを構築し、
ビジネス・アクティビティー・サポートが使用できるサーバーにアプリケーションをデプロイします。アプリケーション・コンポーネントは、
エンタープライズ Bean か、またはエンタープライズ Bean として実装された Web サービスのどちらかです。
始める前に
デプロイメント記述子の編集について詳しくは、
「目次」ビューからアクセスできる Application Server Toolkit の資料の「アプリケーション・デプロイメント記述子エディター」などのトピックを参照してください。
注: JAX-WS アプリケーションは、
ビジネス・アクティビティー・サポートを使用できません。
このタスクについて
ビジネス・アクティビティー対応サーバーで実行するアプリケーションでこのタスクを実行して、
実行時にビジネス・アクティビティー・サポートを使用し、
後に補正ハンドラーで補正可能な作業を実行します。ビジネス・アクティビティー・スコープの終了時にアプリケーションに補正が必要な場合、
アプリケーションは、ビジネス・アクティビティー API を使用してサービス・データ・オブジェクト (SDO) の形式で、
補正処理に必要なデータを間接的に補正ハンドラーに渡します。
プロシージャー
- ビジネス・アクティビティー・サポートが必要なアプリケーション・コンポーネントを設計します。特に、
補正のアプリケーション・コンポーネント要件を定義し、アクティビティーをクローズします。アプリケーション・コンポーネントに補正が必要な場合は、
アプリケーション・コンポーネントから補正ハンドラーに渡される SDO のデータの性質を定義します。
- 必要に応じて、ご使用のアプリケーション設計の情報を使用して、
アプリケーション・コンポーネントの補正ハンドラーを作成してください。 このハンドラーは、
アプリケーション・コンポーネントでハンドラーが追加されたビジネス・アクティビティー・スコープの終了時に実行されるクローズおよび補正の論理を定義します。
- 選択した WebSphere Application Server アセンブリー・ツールを開きます。
- com.ibm.websphere.wsba.CompensationHandler インターフェースをインプリメントする新規 Java クラスを作成します。
- close および compensate メソッドを新規補正ハンドラー・オブジェクトに実装し、
起動時にハンドラーを受け渡す SDO データに応じて適切なアクションを行います。
これで、補正ハンドラー・クラスでは、アプリケーション・コンポーネントで参照したり、アプリケーションにアセンブリーすることが可能になります。
- アセンブリー・ツールのアプリケーション・コンポーネントを開きます。
- デプロイメント記述子ビューアーで、アプリケーション・コンポーネントのデプロイメント記述子を開きます。
- 「Compensation」セクションにスクロールし、
「Run EJB methods under a Business Activity scope」チェック・ボックスを選択します。
- 「Compensation handler class」のテキスト・フィールドで、
事前に作成した補正ハンドラー・クラスの完全修飾されたクラス名を入力します。
- デプロイメント記述子を保管します。
- アプリケーション・コンポーネントおよび補正ハンドラーを含むアプリケーションを構築します。 アプリケーションが Web サービスの場合、
このアプリケーションは Java Specification Request (JSR)
109 標準に準拠している必要があります。
- ビジネス・アクティビティー対応のアプリケーション・サーバーにアプリケーションをデプロイします。
結果
アプリケーションはビジネス・アクティビティー対応になっており、
実行時にはビジネス・アクティビティー API でビジネス・アクティビティー・サポートが使用されます。アプリケーション・コンポーネントには関連した補正ハンドラーがあるため、
実行時には setCompensationDataImmediate メソッドおよび setCompensationDataAtCommit メソッドを呼び出して、
ビジネス・アクティビティー・スコープに補正ハンドラーを追加することができます。これらのメソッドについて詳しくは、
ビジネス・アクティビティー API
を参照してください。ビジネス・アクティビティー・スコープ関連の作業単位が失敗すると、
補正ハンドラーがアクションを実行してエラーを補正します。
次の作業
WebSphere Application Server のランタイム環境では、補正ハンドラー・クラスがアプリケーション・クラスパス上にあるようにしてください。