ビジネス・アクティビティー・サポートを使用するアプリケーション・コンポーネントを作成するには、関連するアプリケーション・コンポーネントのデプロイメント記述子に 「Run EJB methods under a Business Activity scope」を設定し、必要に応じて、エラーが発生したときにアプリケーションが使用する補正ハンドラーを作成し指定します。その後、アプリケーションにコンポーネントを構築し、ビジネス・アクティビティー・サポートが使用できるサーバーにアプリケーションをデプロイします。アプリケーション・コンポーネントは、エンタープライズ Bean か、またはエンタープライズ Bean として実装された Web サービスのどちらかです。
始める前に
Rational® Application Developer を
使用したデプロイメント記述子の編集について詳しくは、Rational Application Developer の情報を参照してください。
このタスクについて
ビジネス・アクティビティー対応のサーバー上で実行されるアプリケーションに対してこのタスクを実行し、実行時にビジネス・アクティビティー・サポートを使用して、補正ハンドラーによって後で補正される可能性のある作業を行います。
ビジネス・アクティビティー・スコープの終了時にアプリケーションが補正を必要とする場合、アプリケーションはビジネス・アクティビティー API を使用して、補正処理に必要なデータを間接的に補正ハンドラーに渡します。 補正処理に必要なデータの形式は、直列化可能オブジェクトまたはサービス・データ・オブジェクト (SDO) のいずれかです。
手順
- ビジネス・アクティビティー・サポートが必要なアプリケーション・コンポーネントを設計します。特に、補正のアプリケーション・コンポーネント要件を定義し、アクティビティーをクローズします。 アプリケーション・コンポーネントが補正を必要とする場合、アプリケーション・コンポーネントから補正ハンドラーに渡される直列化可能オブジェクトまたは SDO のデータの性質を定義します。
- 必要に応じて、ご使用のアプリケーション設計の情報を使用して、アプリケーション・コンポーネントの補正ハンドラーを作成してください。 このハンドラーは、アプリケーション・コンポーネントでハンドラーが追加されたビジネス・アクティビティー・スコープの終了時に実行されるクローズおよび補正の論理を定義します。
- 選択した WebSphere® Application Server アセンブリー・ツールを開きます。
- 補正処理に必要なデータのフォーマットに応じて、適切なインターフェースを実装する Java™ クラスを新規作成します。
- 直列化可能オブジェクトの場合は、com.ibm.websphere.wsba.serializable.CompensationHandler インターフェースを実装します。
- SDO の場合は、com.ibm.websphere.wsba.CompensationHandler インターフェースを実装します。
- 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 のランタイム環境で、補正ハンドラー・クラスがアプリケーション・クラスパス上にあるようにしてください。