21.2.4. BusinessActivityManager

com.arjuna.mw.wst11.BusinessActivityManager は Web サービスが通常使用するクラスです。Web サービスが基礎となるビジネスアクティビティサービス実装とやりとりする方法を定義します。BusinessActivityManager は特定のアクティビティを表していません。代わりに、スレッドごとの暗黙的なアクティビティへのアクセスを提供しています。

メソッド

currentTransaction
現在のビジネスアクティビティに対して TxContext を返します。 TxContext がない場合は、NULL を返します。戻り値を使用して、複数のスレッドが同じビジネスアクティビティのスコープ内で実行可能なようにできます。currenTransaction メソッドを呼び出すことで、そのアクティビティから現在のスレッドの関連付けの解除はしません。
suspend
すべての現在のビジネスアクティビティからスレッドの関連付けを解除します。これにより特定のアクティビティと関連付けられていない作業を実行できます。suspend メソッドは TxContext インスタンスを返します。これはトランザクションのハンドルです。これでスレッドはどのアクティビティとも関連付けられていません。
resume
TxContext を使用して、ビジネスアクティビティとのスレッドの関連付けまたは再度の関連付けを行います。スレッドの関連付けまたは再度の関連付けの前に、現在関連付けられているすべてのビジネスアクティビティからの関連付けが解除されます。TxContextNULL の場合、suspend メソッドが呼び出されたかのように、スレッドはすべてのビジネスアクティビティとの関連付けが解除されます。

パラメータ

txContext
suspend により返される TxContext インスタンスであり、再開されるトランザクションを特定します。

例外

UnknownTransactionException
TxContext が参照するビジネスアクティビティは呼び出しスレッドのスコープでは無効です。
enlistForBusinessAgreementWithParticipantCompletion
現在のビジネスアクティビティで特定のパーティシパントを登録します。これにより BusinessAgreementWithParticipantCompletion プロトコルに参加することになります。パーティシパントの一意識別子も必要です。
戻り値は BAParticipantManager のインスタンスであり、これを使用してパーティシパントの状態における変更をコーディネータに伝えます。特にパーティシパントは Participant Completion プロトコルに登録されているため、このアクティビティで行うことを期待するすべての作業を完了し、かつすべての変更を永久的にすると、この返されたインスタンスの completed メソッドを呼び出すことが期待されます。代わりに、パーティシパントが補正アクションを実行する必要がなく、例えば他のパーティシパントが失敗すると、返された BAParticipantManager インスタンスの exit メソッドを呼び出すことでアクティビティを終了できます。

パラメータ

participant
インターフェース BusinessAgreementWithParticipantCompletionParticipant の実装です。対応するコーディネータメッセージを受信すると、その closecancelcompensate メソッドが呼び出されます。
id
パーティシパントの一意識別子です。この文字列値は登録されている各パーティシパントにより異なるはずです。また、所定の識別子は、同じコンテナにデプロイされた他の Web サービスではなく、登録している Web サービスにパーティシパントが属していると決定できるはずです。

例外

UnknownTransactionException
呼び出しスレッドに関連付けられているトランザクションはありません。
WrongStateException
トランザクションは新しいパーティシパントが登録できる状態にありません。例えば、終了しているときなどです。
enlistForBusinessAgreementWithCoordinatorCompletion
現在のアクティビティで特定のパーティシパントを登録します。これにより BusinessAgreementWithCoordinatorCompletion プロトコルに参加することになります。パーティシパントの一意識別子も必要です。
戻り値は BAParticipantManager のインスタンスであり、これを使用してパーティシパントの状態における変更をコーディネータに伝えます。この場合、この返されたインスタンスの completed メソッドの呼び出しはエラーです。Coordinator Completion プロトコルにより、パーティシパントはそれがすべての変更を永久的にする前に completed メソッドが呼び出されるまで待つよう要求されます。別の方法として、加える変更がないとパーティシパントが決定すると、返された BAParticipantManager インスタンスの exit メソッドを呼び出すことでアクティビティを終了できます。

パラメータ

participant
インターフェース BusinessAgreementWithCoordinatorCompletionParticipant の実装です。対応するコーディネータメッセージを受信すると、その completed、close、cancel、compensate メソッドが呼び出されます。
id
パーティシパントの一意識別子です。この文字列値は登録されている各パーティシパントにより異なるはずです。また、所定の識別子は、同じコンテナにデプロイされた他の Web サービスではなく、登録している Web サービスにパーティシパントが属していると決定できるはずです。

例外

>UnknownTransactionException
呼び出しスレッドに関連付けられているトランザクションはありません。
WrongStateException
トランザクションは新しいパーティシパントが登録できる状態にありません。例えば、終了しているときなどです。