org.opengion.fukurou.db

## クラス ConnectionPool

- java.lang.Object
- - org.opengion.fukurou.util.AbstractObjectPool<Connection>
  - - org.opengion.fukurou.db.ConnectionPool

-      class ConnectionPool
      extends AbstractObjectPool<Connection>

  ConnectionPool は、AbstractObjectPool を継承した オブジェクトプールです。 コネクションオブジェクトをプールすることにより、ConnectionFactory で 管理する Map オブジェクトの実態として、各ID毎の コネクションをキープします。
  機能階層
    ＤＢ/Shell制御
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    コンストラクタ
    コンストラクタと説明
    `ConnectionPool(EDbid edbid)` DBID を指定して作成する コンストラクター DBID をキーに､ HybsSystem.sys メソッドのデータベース変数を取得します。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected Connection` | `createInstance()` コネクションオブジェクトを作成します。
    `String` | `dbidInfo()` 接続先の簡易な内部情報を返します。
    `String` | `getDBName()` 接続先のDB名を返します。
    `String` | `getDBVersion()` 接続先のDBバージョンを返します。
    `protected void` | `objectFinal(Connection obj)` オブジェクトプールから削除するときに呼ばれます。
    `String` | `toString()` 内部状況を簡易的に表現した文字列を返します。
    `boolean` | `useApplicationInfo()` アクセスログ取得の為のDBMS_APPLICATION_INFOの使用可否を取得します(初期値:true)。

    - ### クラスから継承されたメソッド org.opengion.fukurou.util.AbstractObjectPool

      `clear, init, init, isEmpty, newInstance, objectInitial, release, remove, size`

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

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

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

    - #### ConnectionPool

          public ConnectionPool(EDbid edbid)

      DBID を指定して作成する コンストラクター DBID をキーに､ HybsSystem.sys メソッドのデータベース変数を取得します。 取得するのは､ DBID + _DB_URL／_DB_USER／_DB_PASSWD／_DB_MINCOUNT／_DB_MAXCOUNT です。 DBID が null の場合は，"DEFAULT" が使用されます。
      パラメータ:
        `edbid` - 接続先情報オブジェクト
      変更履歴:

        3.5.4.3 (2004/01/05) キャッシュの寿命を指定
        3.5.4.7 (2004/02/06) DBID のゼロストリングチェック追加
        4.0.0.0 (2007/10/10) キャッシュされた、初期ConnectionPool を使用
        4.0.0.0 (2007/10/25) DB設定情報のXML化に伴う変更

  - ### メソッドの詳細

    - #### objectFinal

          protected void objectFinal(Connection obj)

      オブジェクトプールから削除するときに呼ばれます。 このメソッドで各オブジェクトごとの終了処理を行います。 例えば､データベースコネクションであれば､close() 処理などです。
      オーバーライド:
        `objectFinal` クラス内 `AbstractObjectPool<Connection>`
      パラメータ:
        `obj` - 終了処理を行うオブジェクト
      変更履歴:

        3.5.4.8 (2004/02/23) SQLException は無視します。
        3.5.6.0 (2004/06/18) synchronized を解除します。

    - #### createInstance

          protected Connection createInstance()

      コネクションオブジェクトを作成します。 DriverManager.getConnection により作成されたConnection を Connection で ラッピングします。 Connectionオブジェクトは,close()メソッドで,自分自身を ConnectionFactory の プールに戻します。
      定義:
        `createInstance` クラス内 `AbstractObjectPool<Connection>`
      戻り値:
        コネクションオブジェクト
      変更履歴:

        3.3.3.3 (2003/08/06) コネクションに対して、setTransactionIsolation を、設定しておく。
        3.5.2.0 (2003/10/20) 接続情報に、データベース名、ドライバ名情報を追加する。
        3.5.6.0 (2004/06/18) synchronized を解除します。
        3.8.8.2 (2007/01/26) useAppInfo を設定します。
        4.0.0.0 (2007/10/30) 保持情報オブジェクト化に伴う変更
        5.1.2.0 (2010/01/01) MySQL対応 明示的に、TRANSACTION_READ_COMMITTED を指定する。
        5.5.2.0 (2012/05/01) properties対応

    - #### useApplicationInfo

          public boolean useApplicationInfo()

      アクセスログ取得の為のDBMS_APPLICATION_INFOの使用可否を取得します(初期値:true)。 データベースへのアクセスログ取得の為、エンジンで接続するコネクションについて DBMS_APPLICATION_INFO.SET_CLIENT_INFO と SET_MODULE を呼び出しています。 この処理は、ORACLEとの接続のみ有効ですので、接続先データベースが ORACLE 以外は false を返します。 ORACLE の場合は、システムリソースの USE_DB_APPLICATION_INFO 属性の設定値を 返します。 この設定値の初期値は、true です。
      戻り値:
        true:使用する/false:使用しない
      変更履歴:

        3.8.8.2 (2007/01/26) 新規追加

    - #### getDBName

          public String getDBName()

      接続先のDB名を返します。
      戻り値:
        接続先のDB名
      変更履歴:

        4.3.7.0 (2009/06/01) 新規作成

    - #### getDBVersion

          public String getDBVersion()

      接続先のDBバージョンを返します。
      戻り値:
        接続先のDBバージョン
      変更履歴:

        4.3.7.0 (2009/06/01) 新規作成

    - #### dbidInfo

          public String dbidInfo()

      接続先の簡易な内部情報を返します。
      戻り値:
        接続先の簡易な内部情報
      変更履歴:

        5.3.4.0 (2011/04/01) toString() の簡易版

    - #### toString

          public String toString()

      内部状況を簡易的に表現した文字列を返します。 DBID／URL／USER／プールサイズ を返します。
      オーバーライド:
        `toString` クラス内 `AbstractObjectPool<Connection>`
      戻り値:
        このオブジェクトプールの文字列表現
      変更履歴:

        3.5.2.0 (2003/10/20) 接続情報に、データベース名、ドライバ名情報を追加する。
        3.5.6.6 (2004/08/23) 同期化方法を統一する為、synchronized をつけます。(別途 要検討)
        4.0.0.0 (2007/10/29) EDbidのtoStringを呼ぶように変更

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