4.6.1.4. Terminatorインタフェース |
Terminatorインタフェースは、トランザクションをコミットまたはロールバックする場合に使用するオブジェクトインタフェースです。一般的には、これらのオペレーションはトランザクション生成者が利用することになります。中継トランザクションからは利用できません。
CosTransactions::Terminatorクラスには次のメソッドがあります。
commit | トランザクションのコミットを実施する |
rollback | トランザクションのロールバックを実施する |
4.6.1.4.1. commit |
名称 | commit - トランザクションのコミットを実施する | ||||
形式 |
#include "CosTransactions.h" |
||||
説明 | トランザクションのコミット処理を開始します。
登録されているリソースや中継リソースでロールバックオンリーのマーク付けが実施されていない場合は正常にコミット処理が実施されます。そうでない場合はトランザクションのロールバック処理を実施し、CORBA標準例外であるCORBA::TRANSACTION_ROLLEDBACKをthrowします。 このメソッドを呼び出すのに使用したTerminatorオブジェクトが関連付けられているトランザクションの子となる、サブトランザクションを生成しており、かつそれらがコミットあるいはロールバックを実施していない場合は、WebOTX Transaction Service側で自動的にそのサブトランザクションのロールバックを実行します。さらにその後、このトランザクションもロールバックします。 またサブトランザクションに関連するTerminatorオブジェクトを使用してこのメソッドを呼び出した場合は、サブトランザクションのコミットを実施します。それが正常に終了した場合、このサブトランザクション自身は消滅はせずに親トランザクションからのコミットあるいはロールバックを待ち合わせます。詳細はCosTransactions::SubtransactionAwareResource::commit_subtransactionを参照してください。 親トランザクションからコミット要求がきた場合に、サブトランザクションに登録されたリソースオブジェクトに対してコミット処理が実施されることになります。 引数にCORBA_TRUEを指定した場合は、トランザクションのコミット処理が完了するまでメソッドは終了しません。結果としてトランザクションがヒューリスティック状態になった場合は、メソッドの戻りで例外を通知します。CORBA_FALSEを指定した場合、このメソッドは即座に応答を返します。ヒューリスティック状態になった場合でも、例外は返却しません。WebOTX Transaction Serviceではイベントサービスを使った非同期応答はサポートしておりせん。 |
||||
戻り値 | ありません。 | ||||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||||
関連項目 |
4.6.1.4.2. rollback |
名称 | rollback - トランザクションのロールバックを実施する |
形式 |
#include "CosTransactions.h" |
説明 | トランザクションのロールバック処理を開始します。
このとき登録されたリソースオブジェクトに対するすべての変更がロールバックされることになります。 サブトランザクションに関連するTerminatorオブジェクトを使用してこのメソッドを呼び出した場合は、サブトランザクションのロールバックを実施します。正常に終了した場合は、このサブトランザクションに登録されているリソースオブジェクトに対してロールバック要求を出し、それが完了した後にこのサブトランザクション自身は消滅します。 |
戻り値 | ありません。 |
エラー | CORBA標準例外throwされます。 |
関連項目 |