org.opengion.fukurou.db

## クラス TransactionImpl

- java.lang.Object
- - org.opengion.fukurou.db.TransactionImpl

- すべての実装されたインタフェース:
    Transaction
  直系の既知のサブクラス:
    TransactionReal

      public class TransactionImpl
      extends Object
      implements Transaction

  コネクションを共有して、トランザクションを実現します。 基本的には、TransactionTag で利用されますが、一部、このオブジェクトを 渡して、直接、利用するケースもあります。 トランザクションがすべて完了した後で、realClose() メソッドを呼び出します。 一度でも、rollback が指定されていれば、ロールバックを行い、コネクションを 破棄します。それ以外で、commit が指定されていれば、コミットを行い、 コネクションを、プールに戻します。どちらも指定されていなければ、 コネクションプールに戻すだけになります。 考え方として、下記のような流れになります。

         TransactionImpl tran = new TransactionImpl( appInfo ) ;
         try {
            ・・・・・
            tran.commit();
            tran.finish();
         }
         catch( Exception ex ) {
            tran.rollback();
         }
         finally {
            tran.realClose()
         }

  変更履歴:

    5.1.9.0 (2010/08/01) 新規作成

  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK6.0,

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `TransactionImpl(ApplicationInfo appInfo)` ApplicationInfo を指定して作成する、コンストラクター このクラスは、基本的には、TransactionTag クラスから作成されます。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `boolean` | `close()` トランザクションの、終了時処理を行います。
    `boolean` | `close(boolean errFlag)` トランザクションの、終了時処理を行います。
    `boolean` | `commit()` コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。
    `void` | `finish()` トランザクションとして、正常終了時に処理を行います。
    `Connection` | `getConnection(String dbid)` 指定のDBID に対応した、Connection オブジェクトを返します。
    `void` | `realClose()` トランザクションとして、終了時処理を行います。
    `boolean` | `rollback()` ロールバック処理が行われた場合に、内部フラグ(isRollback)を true にセットします。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### TransactionImpl

          public TransactionImpl(ApplicationInfo appInfo)

      ApplicationInfo を指定して作成する、コンストラクター このクラスは、基本的には、TransactionTag クラスから作成されます。
      パラメータ:
        `appInfo` - 内部統制用のアクセス情報

  - ### メソッドの詳細

    - #### getConnection

          public Connection getConnection(String dbid)

      指定のDBID に対応した、Connection オブジェクトを返します。 内部Mapに存在していれば、そのコネクションを、存在しなければ、 新しく作成します。
      定義:
        `getConnection` インタフェース内 `Transaction`
      パラメータ:
        `dbid` - 接続先ID
      戻り値:
        指定のDBID に対応した、Connectionオブジェクト

    - #### commit

          public boolean commit()

      コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。 １回でもコミットが行われており、ロールバックが行われていなければ、 コミットされます。 検索処理のみで、エラーが発生していない場合は、コミットも行われないケースがあります。
      定義:
        `commit` インタフェース内 `Transaction`
      戻り値:
        正常:true/異常:false

    - #### rollback

          public boolean rollback()

      ロールバック処理が行われた場合に、内部フラグ(isRollback)を true にセットします。 １回でもロールバックが行われていれば、最終的にはロールバックされます。 ロールバック指定の場合は、isError フラグを true(エラー有)にセットします。
      定義:
        `rollback` インタフェース内 `Transaction`
      戻り値:
        正常:true/異常:false

    - #### close

          public boolean close()

      トランザクションの、終了時処理を行います。 実質的には、なにもしません。
      定義:
        `close` インタフェース内 `Transaction`
      戻り値:
        正常:true/異常:false
      関連項目:
        `close( boolean )`

    - #### close

          public boolean close(boolean errFlag)

      トランザクションの、終了時処理を行います。 引数は、正常かどうかを判定するフラグです。異常の場合は、true をセットします。 ここでは、実際には何もしませんが、内部的にエラーフラグをセットします。 (エラーの場合のみセット。リセットはされません) 一度でも、エラーが発生したコネクションは、破棄します。それ以外は、プールに戻します。
      定義:
        `close` インタフェース内 `Transaction`
      パラメータ:
        `errFlag` - [true:エラー状態/false:通常]
      戻り値:
        正常:true/異常:false

    - #### finish

          public void finish()

      トランザクションとして、正常終了時に処理を行います。 実質的には、内部のfinishフラグをセットするだけです。 ただし、このフラグがセットされていない場合は、処理が途中で止まった 可能性があるため、トランザクションとしては、正常終了させることができません。
      関連項目:
        `realClose()`

    - #### realClose

          public void realClose()

      トランザクションとして、終了時処理を行います。 トランザクションがすべて完了した後で、呼び出します。 一度でも、Rollback が指定されていれば、ロールバックを行い、コネクションを 破棄します。それ以外で、Commit が指定されていれば、コミットを行い、 コネクションを、プールに戻します。どちらも指定されていなければ、 コネクションプールに戻すだけになります。
      変更履歴:

        5.3.8.0 (2011/08/01) 内部変数を初期化し、このオブジェクトが再利用できるようにする。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.