Sun GlassFish Enterprise Server v3 管理ガイド

JDBC 接続プールの管理

「JDBC 接続プール」は、特定のデータベースのための再利用可能な接続のグループです。新しい物理接続の作成には時間がかかるため、Enterprise Server は使用可能な接続のプールを維持します。アプリケーションが接続を要求すると、プールから 1 つの接続が取得されます。アプリケーションが接続を閉じると、接続はプールに返されます。

JDBC リソースは、リソースが関連付けられている接続プールを指定することで作成されます。複数の JDBC リソースが 1 つの接続プールを指定することもできます。接続プールのプロパティーは、データベースベンダーによっては異なる場合もあります。共通のプロパティーには、データベースの名前 (URL)、ユーザー名、パスワードなどがあります。

次のタスクと情報を使用して、JDBC 接続プールを管理します。

ProcedureJDBC 接続プールを作成する

指定した JDBC 接続プール名で新しい JDBC 接続プールを登録するには、リモートモードで create-jdbc-connection-pool サブコマンドを使用します。。JDBC 接続プールまたはコネクタ接続プールは、認証を使用して作成できます。asadmin ユーティリティーでユーザー、パスワード、またはその他の接続情報を指定するサブコマンドオプションを使用するか、XML 記述子ファイルで接続情報を指定します。

各データベースには接続プールが 1 つ必要です。アプリケーションによっては、複数の接続プールが必要な場合もあります。接続プールを構築するときに、JDBC ドライバとデータベースベンダーに固有のデータが必要となります。次に示す固有データの例の一部は、「JDBC ドライバに固有の構成」にも示してあります。

JDBC 接続プールの作成は動的なイベントであり、サーバーの再起動は必要ありません。ただし、パラメータの中には、サーバーの再起動を求めるものもあります。「サーバーの再起動が必要な構成の変更」を参照してください。

始める前に

接続プールを作成する前に、データベースとデータベースに関連する JDBC ドライバをインストールして統合しておく必要があります。手順については、「データベースの設定」を参照してください。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. create-jdbc-connection-pool(1) サブコマンドを使用して、JDBC 接続プールを作成します。

  3. (省略可能) 必要な場合は、サーバーを再起動します。

    一部のパラメータはサーバーの再起動を必要とします。「サーバーの再起動が必要な構成の変更」を参照してください。


例 14–3 JDBC 接続プールの作成

この例では、sample_derby_pool という名前の接続プールを localhost に作成します。


asadmin> create-jdbc-connection-pool 
--datasourceclassname org.apache.derby.jdbc.ClientDataSource 
--restype javax.sql.XADataSource 
--property portNumber=1527:password=APP:user=APP:serverName=
localhost:databaseName=sun-appserv-samples:connectionAttribut
es=\;create\\=true sample_derby_pool
Command create-jdbc-connection-pool executed successfully.

参照

コマンド行に asadmin help create-jdbc-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

ProcedureJDBC 接続プールを一覧表示する

既存の JDBC 接続プールをすべて表示するには、リモートモードで list-jdbc-connection-pools サブコマンドを使用します。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。


例 14–4 JDBC 接続プールの一覧表示

この例では、localhost 上の JDBC 接続プールを一覧表示します。


asadmin> list-jdbc-connection-pools
sample_derby_pool2
poolA
__TimerPool
DerbyPool
sample_derby_pool
Command list-jdbc-connection-pools executed successfully.

参照

コマンド行に asadmin help list-jdbc-connection-pools と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedure接続プールと通信する (ping を実行する)

接続プールが使用可能かどうかをテストするには、リモートモードで ping-connection-pool サブコマンドを使用します。たとえば、あとで配備する予定のアプリケーション用に新しい JDBC 接続プールを作成した場合、そのアプリケーションを配備する前に、このコマンドを使用して JDBC プールをテストすることができます。ping を実行すると、プールがまだ作成されていない場合は作成を強制されます。

始める前に

接続プールと通信する前に、認証を使用して接続プールを作成し、サーバーまたはデータベースを実行しておく必要があります。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. ping-connection-pool(1) サブコマンドを使用して、接続プールに ping を実行します。


例 14–5 接続プールとの通信

この例では、DerbyPool 接続プールが使用可能かどうかを確認します。


asadmin> ping-connection-pool DerbyPool
Command ping-connection-pool executed successfully

参照

コマンド行に asadmin help ping-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

Procedure接続プールをリセット (フラッシュ) する

指定した接続プールで確立されたすべての接続を再初期化するには、リモートモードで flush-connection-pool を使用します。JDBC 接続プールまたはコネクタ接続プールは、初期状態にリセットされます。既存の動作中の接続はすべて破棄され、これらの接続に関連付けられているトランザクションは失われます。続いてプールの初期接続が再作成され、プールは通常プールサイズに復元されます。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. flush-connection-pool(1) サブコマンドを使用して、接続プールをリセットします。


例 14–6 接続プールのリセット (フラッシュ)

この例では、__TimerPool という名前の JDBC 接続プールを通常プールサイズにリセットします。


asadmin> flush-connection-pool __TimerPool 
Command flush-connection-pool executed successfully.

参照

コマンド行に asadmin help flush-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。

ProcedureJDBC 接続プールを更新する

get および set サブコマンドを使用して、JDBC 接続プールのプロパティーの値を表示および変更します。

  1. list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。

  2. get サブコマンドを使用して、JDBC 接続プールの属性を表示します。

    次に例を示します。


    asadmin get resources.jdbc-connection-pool.DerbyPool.property
    
  3. set サブコマンドを使用して、JDBC 接続プールの属性を設定します。

    次に例を示します。


    asadmin set resources.jdbc-connection-pool.DerbyPool.steady-pool-size=9
    
  4. (省略可能) 必要な場合は、サーバーを再起動します。

    一部のパラメータはサーバーの再起動を必要とします。「サーバーの再起動が必要な構成の変更」を参照してください。

ProcedureJDBC 接続プールを削除する

既存の JDBC 接続プールを削除するには、リモートモードで delete-jdbc-connection-pool サブコマンドを使用します。JDBC 接続プールの削除は動的なイベントであり、サーバーの再起動は必要ありません。

始める前に

JDBC 接続プールを削除する前に、リソースのすべての関連付けを削除する必要があります。

  1. サーバーが実行されていることを確認します。

    リモートサブコマンドには、実行中のサーバーが必要です。

  2. list-jdbc-connection-pools(1) サブコマンドを使用して、JDBC 接続プールを一覧表示します。

  3. 必要に応じて、JDBC 接続プールを削除することをユーザーに通知します。

  4. delete-jdbc-connection-pool(1) サブコマンドを使用して、接続プールを削除します。


例 14–7 JDBC 接続プールの削除

この例では、DerbyPool という名前の JDBC 接続プールを削除します。


asadmin> delete-jdbc-connection-pool jdbc/DerbyPool
Command delete-jdbc-connection-pool executed successfully.

参照

コマンド行に asadmin help delete-jdbc-connection-pool と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。