ドメイン・パーティション・アプリケーション・デプロイメント: 管理: 接続プール
JDBCデータ・ソース内の接続プールにはJDBC接続のグループが含まれ、アプリケーションはそのグループを予約し、使用して、プールに戻します。接続プールとその接続は、接続プールの登録時(通常はWebLogic Serverの起動時または新しいターゲットへのデータ・ソースのデプロイ時)に作成されます。
このページでは、このデータ・ソースの接続プールの構成を定義します。
構成オプション
名前 説明 データ・ソース名 JDBCデータソースの名前。
データベースURL 接続先データベースのURL。URLの書式は、使用するJDBCドライバによって異なります。
URLは、物理データベース接続を作成するためにJDBCドライバに渡されます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Url
パスワード 物理データベース接続の作成時にJDBCドライバに渡されるパスワード属性。
値は暗号化された形式でディスクリプタ・ファイルに格納され、暗号化された形式で管理コンソールに表示されます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Password
プロパティ 物理的なデータベース接続の作成で使用するためにJDBCドライバに渡されるプロパティのリストたとえば、server=dbserver1。「プロパティ=値」の対は、それぞれ別の行に記述します。
ドライバ・レベルの機能を有効にするには、ドライバ・プロパティとその値を「プロパティ」リストに追加します。「プロパティ」リストにあるドライバ・レベルのプロパティがドライバのConnectionPoolDataSourceオブジェクトに設定されます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Properties
システム・プロパティ 物理的なデータベース接続の作成で使用するためにJDBCドライバに渡されるシステム・プロパティのリスト。たとえば、server=dbserver1。「プロパティ=値」の対は、それぞれ別の行に記述します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCPropertyBean.SysPropValue
初期容量 データ・ソースに接続プールを作成するときに作成する物理接続の数。この数の接続を作成できない場合、データ・ソースの作成は失敗します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.InitialCapacity
最小値:
0
最大値:
2147483647
最大容量 この接続プールが保有できる物理接続の最大数。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.MaxCapacity
最小値:
1
最大値:
2147483647
最小容量 初期化後にこの接続プールに含めることのできる物理接続の最小数。
デフォルト: InitialCapacity
接続プールの縮小計算にのみ使用されます。
互換性を保つために、
InitialCapacity
はMinCapacity
が構成されていない場合に使用されます。データ・ソースが中断/再開された後は、
MinCapacity
またはInitialCapacity
の大きいほうの値が使用されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.MinCapacity
最小値:
0
最大値:
2147483647
文キャッシュのタイプ 文キャッシュに格納されたプリコンパイルされた文の管理に使用するアルゴリズム。
オプションは次のとおりです:
「LRU」- 新しいプリコンパイルされた文および呼出し可能文が使用されたときに、最も長い時間未使用の文がキャッシュ内で置換されます。
「FIXED」- 最初の固定数のプリコンパイルされた文および呼出し可能文がキャッシュされます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.StatementCacheType
文キャッシュ・サイズ キャッシュに格納されるプリコンパイルされた文および呼出し可能文の数。(これによって、サーバーのパフォーマンスが向上する場合があります。)
再ロードせずにキャッシュ内の文を再利用できるため、サーバーのパフォーマンスが向上する場合があります。接続プール内の接続ごとに、独自の文キャッシュが保持されます。
文のキャッシュ・サイズを0に設定すると、文のキャッシュは行われません。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.StatementCacheSize
最小値:
0
最大値:
1024
詳細な構成オプション
名前 説明 予約時に接続をテスト 接続をクライアントに渡す前にWebLogic Serverでテストできるようにします。(「テスト対象の表名」を指定する必要があります。)
このテストを行うと、クライアントがプールに接続をリクエストした場合、そのリクエストに応えるまでに短い遅延が生じますが、クライアントでは有効な接続を確実に受け取ることができます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.TestConnectionsOnReserve
テスト頻度 未使用の接続をテストするときに、次のテストが試行されるまでWebLogic Serverインスタンスが待機する秒数(「テスト対象の表名」を指定する必要があります。)テストに失敗した接続は閉じられ、再度開かれて有効な物理接続が再確立されます。テストが再度失敗すると、その接続は閉じられます。
マルチ・データ・ソースのコンテキストでは、この属性は、以前に異常としてマークされたデータ・ソースの状態がチェックされる頻度を制御します。
0
に設定すると、この機能は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.TestFrequencySeconds
最小値:
0
最大値:
2147483647
テスト対象の表名 物理データベース接続のテスト時に使用するデータベース表の名前。「テスト頻度」を指定し、予約時に接続をテストを有効化した場合、この名前は必須になります。
接続のテストに使用されるデフォルトのSQLコードは次のとおりです。
select count(*) from TestTableName
ほとんどのデータベース・サーバーはこのSQLを最適化して表スキャンを回避しますが、「テスト対象の表名」を、行が少ない(またはまったくない)表の名前に設定することも有益です。
テスト対象の表名が
SQL
で始まる場合、SQLより後の文字列は、標準の問合せのかわりに接続をテストするリテラルのSQL文として扱われます。たとえば:SQL BEGIN; Null; END;
Oracleデータベースの場合、「テスト対象の表名」を
SQL PINGDATABASE
に設定すると、pingDatabase()
メソッドを使用してOracle接続のテストが実行されるため、接続テストのオーバーヘッドを減らすことができます。JDBC 4.0データベースでは、SQL ISVALIDを使用して、接続にisValid ()
メソッドを使用できます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.TestTableName
アイドル・プール接続を信頼する秒数 接続がアプリケーションに渡される前、または定期的な接続テストの処理中に、その接続がまだ有効であると信頼されて接続テストがスキップされる接続使用の秒数。
これは、特に大量のトラフィックが発生している場合に接続テストがパフォーマンスに及ぼす影響を最小限に抑える最適化オプションです。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.SecondsToTrustAnIdlePoolConnection
最小値:
0
最大値:
2147483647
縮小頻度 接続プールが需要に見合うよう増加された後、縮小するまでの秒数。
0
に設定すると、縮小機能は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ShrinkFrequencySeconds
最小値:
0
最大値:
2147483647
初期化SQL 新しく作成した物理データベース接続を初期化するときに実行されるSQL文。文の記述は「SQL」で開始し、その後はスペースとします。
「初期化SQL」値が「
SQL
」で始まる場合、「SQL」より後の文字列は、データベース接続を初期化するリテラルのSQL文として扱われます。「初期化SQL」値が「SQL」で始まらない場合、その値は表の名前として扱われ、次のSQL文が接続の初期化に使用されます。
"select count(*) from InitSQL"
表
InitSQL
が存在し、接続を使用するデータベース・ユーザーからアクセスできる必要があります。ほとんどのデータベース・サーバーはこのSQLを最適化して表スキャンを回避しますが、InitSQL
を行が少ない(またはまったくない)表の名前に設定することも有益です。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.InitSql
ログイン遅延 各物理データベース接続を作成するまでにかかる遅延時間(秒)。この遅延により、短時間に連続する複数の接続リクエストを処理できないデータベース・サーバーがサポートされます。
この遅延は、最初にデータ・ソースが作成されるときにも、データ・ソースの生存期間中に物理データベース接続が作成されるときにも発生します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.LoginDelaySeconds
最小値:
0
最大値:
2147483647
接続作成の再試行間隔 データベース接続の確立を試行する間隔の秒数。
この値を設定しないと、データベースが使用できない場合にデータ・ソースの作成が失敗します。この値を設定して、データ・ソースの作成時にデータベースが使用できない場合、指定した秒数が経過するたびにプール内における接続の作成を再試行し、成功するまで続行します。
0
に設定すると、接続の再試行は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionCreationRetryFrequencySeconds
最小値:
0
最大値:
2147483647
非アクティブ接続タイムアウト WebLogic Serverによって接続が再び要求されて接続プールに戻されるまでに、予約接続が非アクティブな秒数。
「非アクティブ接続タイムアウト」の機能を使用すると、リークされた接続(アプリケーションによって明示的に閉じられなかった接続)を再び要求できます。これは、接続を正常に閉じるために使用する機能ではありません。
0
に設定すると、この機能は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.InactiveConnectionTimeoutSeconds
最小値:
0
最大値:
2147483647
接続の最大待機数 データ・ソースの接続プールからの接続の予約を待機する間、同時にスレッドをブロックできる接続リクエストの最大数。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.HighestNumWaiters
最小値:
0
最大値:
2147483647
接続予約のタイムアウト 接続プールから接続を予約する呼出しがタイムアウトになるまでの秒数。
0
に設定すると、呼出しはタイムアウトにはなりません。
-1
に設定すると、呼出しは即座にタイムアウトになります。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionReserveTimeoutSeconds
最小値:
-1
最大値:
2147483647
文タイムアウト 現在実行されている文がタイム・アウトするまでの時間。
StatementTimeoutは、基底のJDBCドライバのサポートに依存します。WebLogic Serverでは、
java.sql.Statement.setQueryTimeout()
メソッドを使用して、指定された時間をJDBCドライバに渡します。使用しているJDBCドライバでこのメソッドをサポートしていない場合、例外がスローされてタイムアウト値が無視されることがあります。
-1
に設定すると、この機能は無効になります。値
0
は、文がタイムアウトしないことを意味します。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.StatementTimeout
最小値:
-1
最大値:
2147483647
使用中の接続を無視 プールから取得した接続がまだ使用されている場合でも、データ・ソースを停止できるようにします。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.IgnoreInUseConnectionsEnabled
スレッドに固定 アプリケーションによって論理接続が閉じられた後でもプールされたデータベース接続を実行スレッドが保持できるようにすることによって、パフォーマンスを向上できるオプションを有効化します。
有効化された場合:
アプリケーションが実行スレッドを使用して初めて接続を予約するときに接続プールからのデータベース接続がその実行スレッドに固定されます。アプリケーションで接続の使用が終了し、
connection.close()
がコールされても、接続は実行スレッドに固定された状態で保持され、接続プールに戻されません。その後、アプリケーションが同じ実行スレッドを使用して接続をリクエストすると、WebLogic Serverによってスレッドで予約済みの接続が提供されます。複数のスレッドが1つの接続を同時に予約しようとしても、接続プールでロック競合は発生しません。数に限りのあるデータベース接続から複数のスレッドが同じ接続を予約しようとしても、スレッド競合は発生しません。
アプリケーションが同じ実行スレッドを使用して接続プールからの複数の接続を同時に予約する場合、WebLogic Serverでは追加のデータベース接続が作成され、それらがスレッドに固定されます。
接続プールの最大容量(接続プールに作成されるデータベース接続の最大数)は、接続をリクエストするために使用される実行スレッド数と、各スレッドが予約している同時接続数をかけたものになります。これは、接続プールに指定された
「最大容量」
を超えることがあります。場合によっては、システム設計でこのような多数の接続について検討し、データベースが追加の関連リソースに対応できるようにする必要があります。システムが追加のリソース要件に対処できない場合、またはPinnedToThread
を有効化した後でデータベース・リソース・エラーが発生する場合は、PinnedToThread
を使用しないことをお薦めします。パフォーマンスを向上するための「スレッドに固定」プロパティの使用を参照してください。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.PinnedToThread
影響のある接続の削除を有効化 アプリケーションで基底のベンダー接続オブジェクトが使用された後で、接続プールから接続を削除するかどうかを指定します。
影響のある接続の削除を無効化すると、データベース接続が他のアプリケーションでの再利用に適していることを確認する必要があります。
true
(デフォルト)に設定すると、アプリケーションで論理的な接続が閉じられた後に、物理的な接続が接続プールに戻されません。かわりに、物理的な接続は閉じられ、再作成されます。
false
に設定すると、アプリケーションで論理的な接続が閉じられたときに、物理的な接続は接続プールに戻され、そのアプリケーションや別のアプリケーションによって再利用できます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.RemoveInfectedConnections
データ型のラップ デフォルトでは、Array、Blob、Clob、NClob、Ref、SQLXMLおよびStructのデータ型オブジェクトに加えてParameterMetaDataおよびResultSetMetaDataオブジェクトがWebLogicラッパーでラップされます。これにより、デバッグおよび接続使用状況などの機能をサーバーで処理できるようになります。
ラップを無効にするには、この値をfalseに設定します。ラップを無効にするとパフォーマンスが(場合によっては大幅に)向上し、アプリケーションでネイティブ・ドライバ・オブジェクトを直接使用できるようになります。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.WrapTypes
致命的エラー・コード 致命的エラーとして扱われるエラー・コードのカンマ区切リストを指定します。これらのエラーには、サーバーがブートできなくなるデプロイメント・エラーおよび接続を接続プールに戻せなくなる接続エラーが含まれます。
このオプションの属性は致命的エラー・コードの定義に使用され、
SQLException
(sqlException.getErrorCode()
によって取得)内で例外コードとして指定された場合に、致命的エラーが発生して接続が使用できなくなったことを示します。Oracleデータベースでは、次の致命的エラー・コードがWLSに事前定義されており、構成ファイルに配置する必要はありません:
3113: "通信チャネルでend-of-fileが検出されました"
3114: "Oracleに接続されていません"
1033: "Oracleの初期化または停止が進行中です"
1034: "Oracleが使用不可です"
1089: "即時停止が進行中です - 操作は許可されません"
1090: "停止が進行中です - 接続は許可されません"
17002: "I/O例外"
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.FatalErrorCodes
接続ラベリング・コールバック 接続ラベリング・コールバックのクラス名。これは、データ・ソースの作成時に自動的にregisterConnectionLabelingCallbackに渡されます。このクラスは
oracle.ucp.ConnectionLabelingCallback
を実装する必要があります。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionLabelingCallback
接続収集最大数 接続収集が行われるときに収集できる接続の最大数。有効値の範囲は1からMaxCapacityです。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionHarvestMaxCount
最小値:
1
接続収集トリガー数 接続収集がいつ行われるかを判断するために使用される使用可能な接続(トリガー値)の数を指定します。
収集は、使用可能な接続数が接続プールのトリガー値を下回った場合に行われます。
有効値の範囲は-1から
MaxCapacity
です。デフォルト値は、
-1
です。値を
-1
に設定すると、接続収集が無効になります。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionHarvestTriggerCount
最小値:
-1
無効化されるまでリフレッシュに失敗した接続の数 データベース・エラーによって発生する接続リクエストの処理における遅延を最小限に抑えるためにWebLogic Serverが接続プールを無効にするまでの間許可される、再接続の失敗数を指定します。ゼロは無効であることを意味します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.CountOfRefreshFailuresTillDisable
最小値:
0
フラッシュされるまでのテストの失敗数 さらなるデータベース・テストによって発生する遅延を最小限に抑えるためにWebLogic Serverが接続プール内の未使用のすべての接続を閉じるまでの間許可される、テストの失敗数を指定します。ゼロは無効であることを意味します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.CountOfTestFailuresTillFlush
最小値:
0