|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--connectionpool.ConnectionPoolDriver
このクラスはJDBC接続を管理し再利用するための、擬似的なJDBCドライ バクラスです。
データベースとの接続はオーバーヘッドが大きく、かなりの時間がかかっ てしまいます。そこで接続のプールを作り、使用しなくなった接続を切断 せずにプールに保存しておいて、後で再利用できるようにします。保存す る場所を接続プール、保存しておくことを接続プーリングと呼ぶことにし ます。
ただし、一つの接続を長く使い続けることのないように、一定時間使用
されていない接続や、一定回数使用された接続は切断するようにしていま
す。それぞれの時間・回数は設定ファイルで指定します。デフォルトでは
5 秒と 5 回です(see: timeout
, maxUse
)。
このクラスは通常の JDBC ドライバと同様の使い方ができるように実装
されています。つまり、java.lang.Class.forName()
でロー
ドして、java.sql.DriverManager.getConnection()
で接続
オブジェクトを取得するといった使い方になります。
接続を接続プールに返すには、Connection.close()を使用します。これ も、通常のJDBCドライバの接続オブジェクトと同じです。
したがって、接続プーリングを使用していないプログラムを、接続プー リングを使用するように変更するには、使用するドライバ名と接続先のデー タベースのURLを変更するだけです(設定ファイルを作成する必要もありま すが)。プログラム自体のロジックを変更する必要はありません。
このようなことができるのは、DriverManager.getConnection メソッド
が返す接続オブジェクトが、実際の JDBC 接続オブジェクト
(java.sql.Connection) を包んだラッパークラスであるプーリング接続ク
ラス PoolingConnection
だからです。プーリン
グ接続オブジェクトは java.sql.Connection インタフェースを実装してい
ます。プーリング接続オブジェクトに対して呼び出されるほとんどのメソッ
ドはそのまま JDBC 接続オブジェクトに委譲されます。
ただし、Connection.close メソッドはオバーライドされているため、
実際には JDBC 接続を単純に切断するのではありません。PoolingConnection.close()
メソッドが呼ばれた場合には、接続が使用されなくなったとみなして、接
続プールに保存するようにしています。
PoolingConnection
,
PoolingConnection.close()
フィールドの概要 | |
static java.lang.String |
CONFIG_FILE
設定ファイルのデフォルト名称。 |
protected static ConnectionPoolDriver |
connectionPoolDriver
接続プール。 |
protected static java.sql.Driver |
driver
JDBCドライバクラス。 |
protected static java.lang.String |
driverName
JDBCドライバ名。 |
protected static java.util.Properties |
jdbcProperties
設定ファイルで指定された JDBC 接続引数としての、任意の文字列タグ および値のペアのリストです。 |
protected static int |
maxConnections
アクティブな最大接続数。 |
protected static int |
maxPoolSize
接続プールの最大サイズ。 |
protected static int |
maxUse
一つの接続の最大再利用回数。 |
static java.lang.String |
PROTCOL
接続プーリングドライバのプロトコル。 |
protected static java.lang.String |
protocol
接続先プロトコル。 |
static java.lang.String |
REVISION
接続プーリングパッケージのリビジョン。 |
protected static long |
timeout
接続プール中の使用されていない接続の生存期間(ms)。 |
メソッドの概要 | |
(パッケージプライベート) static void |
スタティックブロック。 |
boolean |
acceptsURL(java.lang.String url)
指定されたURLに接続できると判断した場合は true を返します。 |
static void |
clear()
接続プールから未使用の接続を取り除きます。 |
java.sql.Connection |
connect(java.lang.String url,
java.util.Properties info)
接続プールから使用可能な接続を取り出す。 |
static void |
destroy()
接続プールを破棄します。 |
static java.lang.String |
getDriverName()
JDBCドライバ名。 |
static java.util.Properties |
getJdbcProperties()
JDBC接続引数。 |
int |
getMajorVersion()
ドライバのメジャーバージョンを取得します。 |
static int |
getMaxPoolSize()
接続プールの最大サイズ。 |
static int |
getMaxUse()
一つの接続の最大再利用回数。 |
int |
getMinorVersion()
ドライバのマイナーバージョンを取得します。 |
java.sql.DriverPropertyInfo[] |
getPropertyInfo(java.lang.String url,
java.util.Properties info)
この疑似JDBCドライバが使用するJDBCドライバ(設定ファイルで指定) の有効なプロパティについての情報を取得します。 |
static java.lang.String |
getProtocol()
接続先プロトコル。 |
static long |
getTimeout()
接続プール中の使用されていない接続の生存期間(ms)。 |
boolean |
jdbcCompliant()
このJDBC疑似ドライバが使用する JDBC ドライバが、JDBC CompliantTM であるかどうかを通知します。 |
(パッケージプライベート) static void |
println(java.lang.String s)
|
static void |
printProperties()
設定ファイルから読み込んだプロパティを表示します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final java.lang.String CONFIG_FILE
public static final java.lang.String PROTCOL
public static final java.lang.String REVISION
protected static ConnectionPoolDriver connectionPoolDriver
protected static java.lang.String driverName
protected static java.sql.Driver driver
protected static java.lang.String protocol
protected static int maxPoolSize
protected static int maxUse
protected static long timeout
protected static int maxConnections
protected static java.util.Properties jdbcProperties
メソッドの詳細 |
static void()
public java.sql.Connection connect(java.lang.String url, java.util.Properties info) throws java.sql.SQLException
接続プールから使用可能な接続を取り出す。使用可能な接続がプール されていなければ、指定された URL にデータベース接続を試みます。指 定されたURLに間違ったドライバを接続しようとしていることがわかった 場合は、null を返します。データベースに接続を試みる場合、指定され たJDBC 接続引数を使用して接続します。
java.sql.Driver
内の connect
url
- データベース接続URL。info
- 接続引数としての任意の文字列タグおよび値のペアのリス
ト。または null。通常は、少なくとも "user" プロパティと
"password" プロパティは指定しなければならない。java.sql.SQLException
- データベースアクセスエラーが発生した場合。public boolean acceptsURL(java.lang.String url) throws java.sql.SQLException
指定されたURLに接続できると判断した場合は true を返します。ド ライバは、urlで指定されたサブプロトコルを認識する場合は true、認 識できない場合は false を返します。
java.sql.Driver
内の acceptsURL
url
- 接続先のデータベースのURL。java.sql.SQLException
- データベースアクセスエラーが発生した場合。public java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String url, java.util.Properties info) throws java.sql.SQLException
この疑似JDBCドライバが使用するJDBCドライバ(設定ファイルで指定) の有効なプロパティについての情報を取得します。
java.sql.Driver
内の getPropertyInfo
url
- 接続先のデータベースのURL。info
- 接続オープンのために送られるタグ/値ペアの推奨リスト。java.sql.SQLException
- データベースアクセスエラーが発生した場合。public int getMajorVersion()
ドライバのメジャーバージョンを取得します。最初はこの値は 1 で なければなりません。
java.sql.Driver
内の getMajorVersion
public int getMinorVersion()
ドライバのマイナーバージョンを取得します。最初はこの値は 0 で なければなりません。
java.sql.Driver
内の getMinorVersion
public boolean jdbcCompliant()
このJDBC疑似ドライバが使用する JDBC ドライバが、JDBC CompliantTM であるかどうかを通知します。
java.sql.Driver
内の jdbcCompliant
public static java.lang.String getDriverName()
public static java.lang.String getProtocol()
public static int getMaxPoolSize()
public static int getMaxUse()
public static long getTimeout()
public static java.util.Properties getJdbcProperties()
public static void clear() throws java.sql.SQLException
接続プールから未使用の接続を取り除きます。
未使用の接続は、タイマーオブジェクトによって生存期間を監視され ています。したがって、アプリケーションのすべてのスレッドが終了し ても、タイマースレッドが存在するため、アプリケーションがすぐには 終了しない場合があります。そのような場合にこのメソッドを呼ぶと、 未使用接続をすべて破棄するため、タイマースレッドを終了させること ができます。
java.sql.SQLException
- 接続の切断に失敗した場合。public static void destroy() throws java.sql.SQLException
接続プールを破棄します。複数のスレッドから接続プールを使用して いる場合、このメソッドを呼び出すと、他のスレッドが接続プールを使 用できなくなるので注意。
java.sql.SQLException
- 接続の切断に失敗した場合。public static void printProperties()
設定ファイルから読み込んだプロパティを表示します。
static void println(java.lang.String s)
|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |