5.2 トランザクションの仕組み

次の図は、Oracle Tuxedo CORBAアプリケーションでトランザクションがどのように機能するのかを示しています。

図5-1 Oracle Tuxedo CORBAアプリケーションでのトランザクションの機能

Oracle Tuxedo CORBAアプリケーションでのトランザクションの機能の図について説明します。

基本的なトランザクションは、次のように動作します:

  1. クライアント・アプリケーションが、Bootstrapオブジェクトを使用してOracle TuxedoドメインのTransactionCurrentオブジェクトのオブジェクト参照を返します。
  2. クライアント・アプリケーションが、Tobj::TransactionCurrent::begin()メソッドを使用してトランザクションを開始し、TPフレームワークを通じてCORBAインタフェースにリクエストを発行します。CORBAインタフェースのすべての操作は、トランザクションのスコープ内で実行されます。
    • それらのいずれかの操作の呼出しで(明示的にまたは通信障害の結果として)例外が生成された場合は、その例外を捕捉し、トランザクションをロールバックできます。
    • 例外が発生しない場合、クライアント・アプリケーションではTobj::TransactionCurrent::commit()メソッドを使用して現在のトランザクションをコミットします。このメソッドは、トランザクションを終了して処理を開始します。トランザクションは、そのトランザクションに関わっているすべてのリソースがコミットに同意した場合だけコミットされます。
  3. Tobj::TransactionCurrent::commit()メソッドにより、トランザクションを完了するためにTPフレームワークからトランザクション・マネージャが呼び出されます。
  4. トランザクション・マネージャがデータベースを更新します。

ノート:

Oracle Tuxedo CORBAでは、CORBA Interoperable Naming Service (INS)を利用してもセキュリティ・サービスの初期オブジェクト参照を取得できます。INSブートストラップ処理メカニズムについては、『CORBAプログラミング・リファレンス』を参照してください。