4.6.1.8. Synchronizationインタフェース

Synchronizationインタフェースのメソッドは、Synchronizationオブジェクトを登録してあるトランザクションが完了する直前、および直後にWebOTX Transaction Service側から呼び出されます。これによりトランザクションの完了の直前直後で独自の処理を実施することができます。

CosTransactions::Synchronizationクラスには次のメソッドがあります。

before_completion 2フェーズコミット前に独自の処理を実施する
after_completion 2フェーズコミット完了後に独自の処理を実施する

   
4.6.1.8.1. before_completion

名称 before_completion - 2フェーズコミット前に独自の処理を実施する
形式
 #include "CosTransactions.h"
void CosTransactions::Synchronization::before_completion( CORBA::Environment& env = Ob_default_environment() );
説明 このSynchronizationオブジェクトが登録されたトランザクションが、2フェーズコミット処理を開始する直前、つまり同じCoordinatorに登録されたResourceオブジェクトにprepareが発行される直前に、WebOTX Transaction Serviceによってこのメソッドが呼び出されます。

このメソッドの処理はWebOTX Transaction Serviceのユーザ側で記述することになります。このオブジェクトで独自に管理しているデータのうちのいくつかを2フェーズコミット処理の直前に永続にしておく必要がある場合などはこのオブジェクトが役に立ちます。

このメソッドの戻りとしてCORBA標準例外をthrowすることが可能です。この場合、WebOTX Transaction Serviceではこのオブジェクトが登録されたトランザクションをロールバックすることになります。
戻り値 ありません。
エラー CORBA標準例外をthrowすることが可能です。CORBA標準例外以外の例外はthrowしないでください。
関連項目 ありません。

   
4.6.1.8.2. after_completion

名称 after_completion - 2フェーズコミット完了後に独自の処理を実施する
形式
 #include "CosTransactions.h"
void CosTransactions::Synchronization::after_completion( CosTransactions::Status status, CORBA::Environment& env = Ob_default_environment() );
説明 このSynchronizationオブジェクトが登録されたトランザクションが、2フェーズコミットを完了した直後、つまり同じCoordinatorに登録されたResourceオブジェクトに対するrollback、あるいはcommitが完了した直後に、WebOTX Transaction Serviceによってこのメソッドが呼び出されます。

statusには、完了したトランザクションの状態をリカバリサーバが格納します。

このメソッドの処理はWebOTX Transaction Serviceのユーザ側で記述することになります。このオブジェクトで独自に管理しているデータのうちのいくつかを2フェーズコミット処理の直後に永続にしておく必要がある場合などはこのオブジェクトが役に立ちます。またWebOTX Transaction Service側で、引数にトランザクションの現在の状態を入れるので、これをもとに処理を記述することも可能です。

このメソッドは戻りとしてCORBA標準例外をthrowすることが可能です。ただし、ここでthrowした例外はコミット処理の結果に影響を与えません。
戻り値 ありません。
エラー CORBA標準例外をthrowすることが可能です。CORBA標準例外以外の例外はthrowしないでください。
関連項目 ありません。