![]() ![]() ![]() ![]() |
JDBCデータ・ソース: 構成: 接続プール
構成オプション 詳細な構成オプション 関連タスク 関連トピック
JDBCデータ・ソース内の接続プールにはJDBC接続のグループが含まれ、アプリケーションはそのグループを予約し、使用して、プールに戻します。接続プールとその接続は、接続プールの登録時(通常はWebLogic Serverの起動時または新しいターゲットへのデータ・ソースのデプロイ時)に作成されます。
このページでは、このデータ・ソースの接続プールの構成を定義します。
構成オプション
名前 説明 URL 接続先データベースのURL。URLの書式は、使用するJDBCドライバによって異なります。
URLは、物理データベース接続を作成するためにJDBCドライバに渡されます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Url
ドライバ・クラス名 接続プールでの物理データベース接続の作成に使用するJDBCドライバ・クラスの完全パッケージ名。(このドライバ・クラスは、デプロイ先のいずれかのサーバーのクラスパスに含まれる必要があります。)
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.DriverName
プロパティ 物理的なデータベース接続の作成で使用するためにJDBCドライバに渡されるプロパティのリスト(たとえば、「server=dbserver1」の対)。「プロパティ=値」の対は、それぞれ別の行に記述します。
ドライバ・レベルの機能を有効にするには、ドライバ・プロパティとその値を「プロパティ」リストに追加します。「プロパティ」リストにあるドライバ・レベルのプロパティがドライバのConnectionPoolDataSourceオブジェクトに設定されます。
- ノート:
- セキュリティ上の理由で、WebLogic Serverが本番モードで動作している場合は、このプロパティ・リストにデータベース・パスワードを指定することはできません。プロパティ・リストにパスワードが指定されていると、データ・ソースのデプロイメントが失敗します。このセキュリティ・チェックをオーバーライドするには、サーバーの起動時にコマンドライン引数"weblogic.management.allowClearTextPasswords"を使用します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Properties
システム・プロパティ 物理的なデータベース接続の作成で使用するためにJDBCドライバに渡されるシステム・プロパティのリスト。(たとえば、「server=dbserver1」の対)。「プロパティ=値」の対は、それぞれ別の行に記述します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCPropertyBean.SysPropValue
暗号化されたプロパティ 物理的なデータベース接続の作成で使用するためにJDBCドライバに渡される暗号化されたプロパティのリスト。たとえば、password=valueです。
この値を入力するには2つの方法があります。
- 一度に複数の値を入力できますが、暗号化された値は、変更を保存するまでは画面に表示されます。このオプションを使用するには、各行にproperty=valueペアをそれぞれリストします。値は保存する際に暗号化されます。
- 情報を安全に入力するには、このページに対して行うその他の変更を保存して、「安全に追加」をクリックします。「新しく暗号化されたプロパティの追加」ページで、プロパティ名とマスクされた値を入力し、「OK」をクリックします。追加の暗号化されたプロパティ値に対して繰り返します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCPropertyBean.EncryptedValue
パスワード 物理データベース接続の作成時にJDBCドライバに渡されるパスワード属性。
値は暗号化された形式でディスクリプタ・ファイルに格納され、暗号化された形式で管理コンソールに表示されます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCDriverParamsBean.Password
初期容量 データ・ソースに接続プールを作成するときに作成する物理接続の数。この数の接続を作成できない場合、データ・ソースの作成は失敗します。
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
詳細な構成オプション
名前 説明 テスト対象の表名 物理データベース接続のテスト時に使用するデータベース表の名前。「テスト頻度」を指定し、予約時に接続をテストを有効化した場合、この名前は必須になります。
接続のテストに使用されるデフォルトの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
初期化SQL 新しく作成した物理データベース接続を初期化するときに実行されるSQL文。文の記述は「SQL」で開始し、その後はスペースとします。
「初期化SQL」値が「
SQL
」で始まる場合、「SQL」より後の文字列は、データベース接続を初期化するリテラルのSQL文として扱われます。「初期化SQL」値が「SQL」で始まらない場合、その値は表の名前として扱われ、次のSQL文が接続の初期化に使用されます。
"select count(*) from InitSQL"
表
InitSQL
が存在し、接続を使用するデータベース・ユーザーからアクセスできる必要があります。ほとんどのデータベース・サーバーはこのSQLを最適化して表スキャンを回避しますが、InitSQL
を行が少ない(またはまったくない)表の名前に設定することも有益です。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.InitSql
予約時に接続をテスト 接続をクライアントに渡す前にWebLogic Serverでテストできるようにします。(「テスト対象の表名」を指定する必要があります。)
このテストを行うと、クライアントがプールに接続をリクエストした場合、そのリクエストに応えるまでに短い遅延が生じますが、クライアントでは有効な接続を確実に受け取ることができます。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.TestConnectionsOnReserve
テスト頻度 未使用の接続をテストするときに、次のテストが試行されるまでWebLogic Serverインスタンスが待機する秒数(「テスト対象の表名」を指定する必要があります。)テストに失敗した接続は閉じられ、再度開かれて有効な物理接続が再確立されます。テストが再度失敗すると、その接続は閉じられます。
マルチ・データ・ソースのコンテキストでは、この属性は、以前に異常としてマークされたデータ・ソースの状態がチェックされる頻度を制御します。
0
に設定すると、この機能は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.TestFrequencySeconds
最小値:
0
最大値:
2147483647
アイドル・プール接続を信頼する秒数 接続がアプリケーションに渡される前、または定期的な接続テストの処理中に、その接続がまだ有効であると信頼されて接続テストがスキップされる接続使用の秒数。
これは、特に大量のトラフィックが発生している場合に接続テストがパフォーマンスに及ぼす影響を最小限に抑える最適化オプションです。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.SecondsToTrustAnIdlePoolConnection
最小値:
0
最大値:
2147483647
縮小頻度 接続プールが需要に見合うよう増加された後、縮小するまでの秒数。
0
に設定すると、縮小機能は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ShrinkFrequencySeconds
最小値:
0
最大値:
2147483647
接続作成の再試行間隔 データベース接続の確立を試行する間隔の秒数。
この値を設定しないと、データベースが使用できない場合にデータ・ソースの作成が失敗します。この値を設定して、データ・ソースの作成時にデータベースが使用できない場合、指定した秒数が経過するたびにプール内における接続の作成を再試行し、成功するまで続行します。
0
に設定すると、接続の再試行は無効化されます。MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.ConnectionCreationRetryFrequencySeconds
最小値:
0
最大値:
2147483647
ログイン遅延 各物理データベース接続を作成するまでにかかる遅延時間(秒)。この遅延により、短時間に連続する複数の接続リクエストを処理できないデータベース・サーバーがサポートされます。
この遅延は、最初にデータ・ソースが作成されるときにも、データ・ソースの生存期間中に物理データベース接続が作成されるときにも発生します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.LoginDelaySeconds
最小値:
0
最大値:
2147483647
接続時にクライアントIDを設定 データ・ソースに対して「接続時にクライアントIDを設定」を有効化します。アプリケーションがデータベース接続をリクエストすると、WebLogic Serverによりデータベース接続に対して軽量クライアントIDが設定されます。
デフォルトでは、資格証明マッピングを使用して、WebLogic ServerユーザーIDがデータベース・ユーザーIDにマップされます。ただし、use-database-credentialsがtrueに設定されている場合は、資格証明マッピングは実行されず、IDがそのままデータベース・ユーザーIDとして使用されます。
現時点では、IBM DB2ドライバとOracle Thin Driverでサポートされています。この機能のかわりにプロキシ認証を使用することをお薦めします。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.CredentialMappingEnabled
非アクティブ接続タイムアウト 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
接続初期化コールバック 接続初期化コールバック・クラスの名前。
この名前は、データ・ソースの作成時に自動的に
registerConnectionInitializationCallback
に渡されます。このクラスはoracle.ucp.jdbc.ConnectionInitializationCallback
を実装する必要があります。MBean属性(アプリケーション・モジュールには適用しない):
JDBCOracleParamsBean.ConnectionInitializationCallback
接続収集最大数 接続収集が行われるときに収集できる接続の最大数。有効値の範囲は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
開始/終了リクエストの呼出し trueの場合、JDBC 4.3互換ドライバが使用されていると、接続プールは、アプリケーションに接続を戻す前にConnection.beginRequest()を呼び出し、接続をプールに解放する前にConnection.endRequest()を呼び出します。
MBean属性(アプリケーション・モジュールには適用しない):
JDBCConnectionPoolParamsBean.InvokeBeginEndRequest
![]() |