3.3.3 トランザクションの終了

一般に、トランザクションの結果を処理することは、イニシエータの責任です。したがって、次のことが言えます。

  • クライアントまたはサーバー・アプリケーション・コードでトランザクションを開始した場合、TPフレームワークはトランザクションをコミットしません。トランザクションが不当な状態になっているときにサーバー・プロセスがクライアントに復帰しようとすると、Oracle Tuxedoシステムはトランザクションをロールバックします。
  • システムがトランザクションを開始した場合、必ずOracle Tuxedoシステムがコミットまたはロールバックを処理します。

Oracle Tuxedoシステムによって、次の動作が強制的に実行されます:

  • CORBAオブジェクトのメソッドが呼び出されたときにアクティブなトランザクションがなく、そのメソッドがトランザクションを開始した場合、トランザクションは、メソッド呼出しが復帰したときにコミット、ロールバック、または一時停止される必要があります。これらのアクションが実行されない場合、トランザクションはTPフレームワークによってロールバックされ、CORBA::OBJ_ADAPTER例外がクライアント・アプリケーションで発生します。この例外はトランザクションがサーバー・アプリケーションで初期化されたために発生します。したがって、クライアント・アプリケーションでは、TRANSACTION_ROLLEDBACKのようなトランザクション・エラーを予想していません。