定義項目
カテゴリ | プロパティ | プロパティ名 | get | set | list | |
---|---|---|---|---|---|---|
× | × | ○ | ||||
name | ○ | × | × | |||
datasource-classname | ○ | ○ | × | |||
res-type | ○ | ○ | × | |||
description | ○ | ○ | × | |||
property.${PropertyName} | ○ | ○ | × | |||
プール内の接続数 | ||||||
steady-pool-size | ○ | ○ | × | |||
max-pool-size | ○ | ○ | × | |||
pool-resize-quantity | ○ | ○ | × | |||
idle-timeout-in-seconds | ○ | ○ | × | |||
max-wait-time-in-millis | ○ | ○ | × | |||
接続検証 | ||||||
is-connection-validation-required | ○ | ○ | × | |||
connection-validation-method | ○ | ○ | × | |||
validation-table-name | ○ | ○ | × | |||
fail-all-connections | ○ | ○ | × | |||
トランザクション管理 | ||||||
non-transactional-connections | ○ | ○ | × | |||
allow-non-component-callers | ○ | ○ | × | |||
transaction-isolation-level | ○ | ○ | × | |||
is-isolation-level-guaranteed | ○ | ○ | × | |||
詳細属性 | ||||||
statement-timeout-in-seconds | ○ | ○ | × | |||
pooling | ○ | ○ | × | |||
connection-leak-timeout-in-seconds | ○ | ○ | × | |||
connection-leak-reclaim | ○ | ○ | × | |||
connection-creation-retry-attempts | ○ | ○ | × | |||
connection-creation-retry-interval-in-seconds | ○ | ○ | × |
■接続プール
resources.jdbc-connection-pool.${pool-name}
接続プール名
resources.jdbc-connection-pool.${pool-name}.name
JDBC接続プールの名前です。
なし
データソースクラス名
resources.jdbc-connection-pool.${pool-name}.datasource-classname
データソースの実装クラスです。
任意の文字列
なし
リソースタイプ
resources.jdbc-connection-pool.${pool-name}.res-type
データソースのインタフェース名です。リソースタイプを指定しなかった場合や、使用するデータソースクラスがリソースタイプに指定したインタフェースを実装していない場合には、javax.sql.DataSourceが指定された場合と同様の動作をします。
javax.sql.ConnectionPoolDataSource
javax.sql.DataSource
javax.sql.XADataSource
asadmin setサブコマンドで値を省略(定義項目名と「=」だけを指定)して実行すると、値をなしに設定できます。
なし
説明
resources.jdbc-connection-pool.${pool-name}.description
JDBC接続プールの説明文です。
任意の文字列
asadmin setサブコマンドで値を省略(定義項目名と「=」だけを指定)して実行すると、値をなしに設定できます。
なし
追加プロパティ
resources.jdbc-connection-pool.${pool-name}.property.${PropertyName}
データベース名(URL)、ユーザ名、およびパスワードなど、使用するJDBCドライバにあわせて必要なプロパティを接続プールの定義へ追加できます。指定可能なプロパティは、JDBCドライバごとに異なるため詳細は、各JDBCドライバのマニュアルを確認してください。
注意
運用中に定義を変更すると、プールに含まれるすべての接続が削除されます。
プロパティ名
半角英数字、または特殊文字(‘-’、‘_’、‘.’、‘/’、‘;’、‘#’)
先頭には、半角英数字が指定可能
プロパティ値
任意の文字列
プロパティの値の型がjava.util.Propertiesの場合、プロパティに「([name=value[,name=value]...])」という形式で値を指定します。nameとvalueには特殊文字の(‘,’、‘=’)を使用できません。
asadmin setサブコマンドで値を省略(定義項目名と「=」だけを指定)して実行すると、値をなしに設定できます。
なし
初期および最小プールサイズ
resources.jdbc-connection-pool.${pool-name}.steady-pool-size
プール内の接続の最小数を指定します。この値は、プールを最初に作成する時のプールに含まれる接続数としても使用されます。
最大プールサイズ以下の値を設定してください。
0~2147483647(個)
8
最大プールサイズ
resources.jdbc-connection-pool.${pool-name}.max-pool-size
プールに含まれる接続の最大数を指定します。プール数が最大プールサイズに達し、すべての接続が使用中の場合、接続要求はキューに格納されます。使用中の接続が解放されると、キューにたまった要求が取り出されて処理が実行されます。
初期および最小プールサイズ以上、かつプールサイズ変更量以上の値を設定してください。
1~2147483647(個)
32
プールサイズ変更量
resources.jdbc-connection-pool.${pool-name}.pool-resize-quantity
プールのサイズを最大プールサイズおよび最小プールサイズに対して拡大および縮小すると、一括処理でプールサイズが変更されます。
ただし、プールサイズ変更時には最大プールサイズまで拡大し、最小プールサイズまで縮小するように変更します。
本値は、一括処理において拡大/縮小を行う接続数です。
最大プールサイズ以下の値を設定してください。
ポイント
本値を過大に設定すると、接続の作成と再利用が遅れ、過小に設定すると、効率が落ちます。
1~2147483647(個)
2
アイドルタイムアウト
resources.jdbc-connection-pool.${pool-name}.idle-timeout-in-seconds
プールで接続がアイドル状態のままでいられる最長時間(秒)を指定します。この時間を過ぎると、接続はプールから削除されます。「0」が指定された場合、接続はアイドルタイムアウトによって、プールから削除されることはありません。
0~2147483647(秒)
300
最大待ち時間
resources.jdbc-connection-pool.${pool-name}.max-wait-time-in-millis
プールに含まれる接続数が最大プールサイズに達し、すべての接続が使用中の場合、接続を要求するアプリケーションが接続タイムアウトになるまでに待つ時間(ミリ秒)を指定します。「0」が指定された場合、接続タイムアウトは発生しません。
0~2147483647(ミリ秒)
60000
接続検証
resources.jdbc-connection-pool.${pool-name}.is-connection-validation-required
接続検証を有効にする(true)/しない(false)を指定します。
true
false
true
検証方法
resources.jdbc-connection-pool.${pool-name}.connection-validation-method
接続を検証する方法を指定します。
isValid
データベースがSymfoware ServerのNativeインタフェースの場合、アプリケーションサーバはSQL文「SELECT 1」を発行して接続を検証します。
データベースがSymfoware ServerのNativeインタフェース以外の場合、アプリケーションサーバは接続のisValid()メソッドを呼び出して接続を検証します。
table
アプリケーションサーバは、指定したデータベースのテーブルにSQL文を発行して検証します。指定するテーブルは実在し、アクセス可能である必要があります。この検証方法では指定したテーブルの行数をカウントするSQL文を発行するため、多くの行を持つテーブルや、頻繁にアクセスされているテーブルは指定しないでください。
注)検証される接続がコンテナーのトランザクション中となる場合、その接続を検証しません。
isValid
table
isValid
テーブル名
resources.jdbc-connection-pool.${pool-name}.validation-table-name
検証方法で「table」を選択した場合は、ここでテーブル名を指定します。指定したテーブルに以下のようなSQL文を実行し、接続を検証します。
SELECT COUNT(*) FROM テーブル名
任意の文字列
asadmin setサブコマンドで値を省略(定義項目名と「=」だけを指定)して実行すると、値をなしに設定できます。
なし
すべての障害で
resources.jdbc-connection-pool.${pool-name}.fail-all-connections
有効にする(true)/しない(false)を指定します。
true
1つの接続障害を検出すると、アプリケーションサーバはプールに含まれるすべての接続を閉じ、初期および最小プールサイズで指定した数だけ接続を再確立します。この際、クローズされた接続は接続検証に失敗した接続としてみなされます。
false
クライアントからの接続要求の契機でプールから取り出した接続に対して接続検証を行い、検証に失敗した接続のみを破棄します。
true
false
false
非トランザクション接続
resources.jdbc-connection-pool.${pool-name}.non-transactional-connections
トランザクション管理されていない接続を返す(true)/返さない(false)を指定します。
true
false
false
トランザクション開始後の接続のみ参加
resources.jdbc-connection-pool.${pool-name}.allow-non-component-callers
有効にする(true)/しない(false)を指定します。本機能が有効なJDBCリソースの場合、JTAトランザクション開始後にオープンした接続だけトランザクションに参加します。
true
false
false
トランザクション遮断
resources.jdbc-connection-pool.${pool-name}.transaction-isolation-level
プール内で生成された接続が、指定されたトランザクション遮断レベルに設定されます。
トランザクション遮断レベルについては、「3.1.7 データベース連携アプリケーションの作成方法」-「トランザクション遮断と遮断レベル」を参照してください。
read-uncommitted
read-committed
repeatable-read
serializable
JDBCドライバによって設定されるデフォルトの遮断レベル
遮断レベル
resources.jdbc-connection-pool.${pool-name}.is-isolation-level-guaranteed
有効にする(true)/しない(false)を指定します。本機能が有効な場合、アプリケーションに返却される接続が、常にトランザクション遮断で指定した遮断レベルに設定されることを保証します。
true
false
true
文のタイムアウト
resources.jdbc-connection-pool.${pool-name}.statement-timeout-in-seconds
異常に長い時間実行されているクエリーを終了させるまでの時間(秒)を指定します。
アプリケーションサーバは、Statement、PreparedStatement、CallableStatementオブジェクトに対してsetQueryTimeout()メソッドを実行し、実行タイムアウト値を設定します。
アプリケーション側でも明示的にsetQueryTimeout()メソッドを発行した場合、以下の順番で設定が行われます。
アプリケーションサーバが、文のタイムアウトに指定した時間でsetQueryTimeout()メソッドを発行します。
アプリケーションからsetQueryTimeout()メソッドを発行します。
setQueryTimeout()メソッドの詳細は、java.sql.StatementインタフェースのJavaDOCやJDBCドライバのマニュアルを参照してください。
0以下の値を指定した場合は、この属性が無効(setQueryTimeout()メソッドを実行しない)であることを示します。
-1~2147483647
-1
プーリング(注1)
resources.jdbc-connection-pool.${pool-name}.pooling
Interstage側のプーリング機能を有効にする(true)/しない(false)を指定します。JDBCドライバ側のプーリング機能を使用する場合は、この設定を無効に設定し、Interstage側のプーリング機能を無効にしてください。
注意
運用中に定義を変更すると、プールに含まれるすべての接続が削除されます。
true
false
true
リークタイムアウト
resources.jdbc-connection-pool.${pool-name}.connection-leak-timeout-in-seconds
正常な接続に使われる最大時間(秒)を指定します。接続の使用時間がこの値を超えた場合、その接続にリークが発生したとみなします。接続リークが発生した場合、接続がオープンされたときのスタックトレースがサーバーログに記録されます。
本定義項目に「0」を指定した場合、接続のリーク発生の監視を行いません。
リーク再要求を「true」に設定した場合、リークが発生した接続は自動的にその物理接続を破棄します。
0~2147483647
0
リーク再要求
resources.jdbc-connection-pool.${pool-name}.connection-leak-reclaim
リーク再要求を有効にする(true)/しない(false)を指定します。この設定を有効にした場合、リークが発生した接続は自動的にその物理接続を破棄します。
true
false
false
作成再試行回数
resources.jdbc-connection-pool.${pool-name}.connection-creation-retry-attempts
新しい接続の作成に失敗した場合、再試行する回数を指定します。
「0」が指定された場合、再試行しません。
0~2147483647
0
再試行間隔
resources.jdbc-connection-pool.${pool-name}.connection-creation-retry-interval-in-seconds
接続の作成を再試行する間隔(秒)を指定します。この値は、作成再試行回数が「0」よりも大きい場合、有効となります。
1~2147483647
10
JDBCドライバ側で提供されているプーリング機能を有効にすると、Interstage側のプーリング機能と冗長に動作する可能性があります。JDBCドライバ側のプーリング機能を有効にする場合は、Interstage側のプーリング機能を無効にしてください。
Interstage側のプーリング機能が無効の場合、以下のJDBC接続プールの定義項目は無効となります。
初期および最小プールのサイズ
プールサイズの変更量
アイドルタイムアウト
最大待ち時間
すべての障害で
リーク再要求
Interstage側のプーリング機能が無効の場合でも、以下のJDBC接続プールの定義項目は動作します。
最大プールのサイズ
特定のアプリケーションがJDBC接続を大量に取得することを抑止します。
Symfoware ServerのNativeインタフェースのJDBCドライバ側のプーリング機能はサポートしません。Symfoware ServerのNativeインタフェースを利用する場合、本設定を「true」に設定してください。
関連情報
詳細な説明や関連記事については、以下を参照してください。
内容 | 参照先 |
---|---|
機能説明 | |
チューニング方法 | |
コマンド | asadminコマンドの以下のサブコマンド |