ページの先頭行へ戻る
Interstage Application Server V13.0.0 GlassFish 設計・構築・運用ガイド
FUJITSU Software

8.6.1 JDBC接続プールの定義項目

定義項目

カテゴリ

プロパティ

プロパティ名

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

×

プーリング(注1)

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()メソッドを発行した場合、以下の順番で設定が行われます。

  1. アプリケーションサーバーが、文のタイムアウトに指定した時間でsetQueryTimeout()メソッドを発行します。

  2. アプリケーションからsetQueryTimeout()メソッドを発行します。
    setQueryTimeout()メソッドの詳細は、java.sql.StatementインターフェイスのJavaDOCやJDBCドライバのマニュアルを参照してください。

0以下の値を指定した場合は、この属性が無効(setQueryTimeout()メソッドを実行しない)であることを示します。

範囲

-1~2147483647

初期

-1


プーリング(注1)

定義項目名

resources.jdbc-connection-pool.${pool-name}.pooling

説明

GlassFish側のプーリング機能を有効にする(true)/しない(false)を指定します。JDBCドライバ側のプーリング機能を使用する場合は、この設定を無効に設定し、GlassFish側のプーリング機能を無効にしてください。

注意

運用中に定義を変更すると、プールに含まれるすべての接続が削除されます。

範囲
  • 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


1)

JDBCドライバ側で提供されているプーリング機能を有効にすると、GlassFish側のプーリング機能と冗長に動作する可能性があります。JDBCドライバ側のプーリング機能を有効にする場合は、GlassFish側のプーリング機能を無効にしてください。

GlassFish側のプーリング機能が無効の場合、以下のJDBC接続プールの定義項目は無効となります。

  • 初期および最小プールのサイズ

  • プールサイズの変更量

  • アイドルタイムアウト

  • 最大待ち時間

  • すべての障害で

  • リーク再要求

GlassFish側のプーリング機能が無効の場合でも、以下のJDBC接続プールの定義項目は動作します。

  • 最大プールのサイズ
    特定のアプリケーションがJDBC接続を大量に取得することを抑止します。

Symfoware ServerのNativeインターフェイスのJDBCドライバ側のプーリング機能はサポートしません。Symfoware ServerのNativeインターフェイスを利用する場合、本設定を「true」に設定してください。


関連情報

詳細な説明や関連記事については、以下を参照してください。

内容

参照先

機能説明

2.17 データベース連携/JDBC

チューニング方法

6.8 データベース連携環境のチューニング

コマンド

asadminコマンドの以下のサブコマンド
  getサブコマンド
  setサブコマンド
  listサブコマンド
  create-jdbc-connection-poolサブコマンド
  delete-jdbc-connection-poolサブコマンド
  list-jdbc-connection-poolsサブコマンド