35 DBMS_CONNECTION_POOL

DBMS_CONNECTION_POOLパッケージは、データベース常駐接続プールを管理するインタフェースを提供します。

参照:

データベース常駐接続プールの詳細は、『Oracle Database概要』を参照してください。

この章では、次の項目について説明します。

35.1 DBMS_CONNECTION_POOLサブプログラムの要約

この表は、DBMS_CONNECTION_POOLサブプログラムをアルファベット順に示し、簡単に説明しています。

表35-1 DBMS_CONNECTION_POOLパッケージのサブプログラム

サブプログラム 説明

ALTER_PARAMプロシージャ

特定の構成パラメータをスタンドアロン単位で変更します。他のパラメータは影響を受けません。

CONFIGURE_POOLプロシージャ

拡張オプションでプールを構成します。

START_POOLプロシージャ

操作を行うためにプールを開始します。これがコールされた後に、接続クライアントがプールを使用してセッションを作成できます。

STOP_POOLプロシージャ

プールを停止し、登録されている接続クライアントに対してプールを使用不可にします。

RESTORE_DEFAULTSプロシージャ

プールをデフォルト設定に戻します。

35.1.1 ALTER_PARAMプロシージャ

このプロシージャは、特定の構成パラメータをスタンドアロン単位で変更します。他のパラメータは影響を受けません。

構文

DBMS_CONNECTION_POOL.ALTER_PARAM (
   pool_name     IN  VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL',   
   param_name    IN  VARCHAR2,   
   param_value   IN  VARCHAR2);

パラメータ

表35-2 ALTER_PARAMプロシージャのパラメータ

パラメータ 説明

pool_name

構成するプール。現在は、デフォルトのプール名のみがサポートされています。

param_name

CONFIGURE_POOLからの任意のパラメータ名。

param_value

param_nameのパラメータ値。

参照:

このプロシージャで構成可能なすべてのデータベース常駐接続プールのパラメータのリストおよび説明については、『Oracle Database管理者ガイド』を参照してください。

例外

表35-3 ALTER_PARAMプロシージャの例外

例外 説明

ORA-56500

接続プールが見つかりません

ORA-56504

接続プール構成パラメータ名が無効です

ORA-56505

接続プール構成パラメータ値が無効です

ORA-56507

接続プールの変更構成に失敗しました

DBMS_CONNECTION_POOL.ALTER_PARAM(
   'SYS_DEFAULT_CONNECTION_POOL', 'MAX_LIFETIME_SESSION', '120'); 

35.1.2 CONFIGURE_POOLプロシージャ

このプロシージャは、拡張オプションでプールを構成します。

構文

DBMS_CONNECTION_POOL.CONFIGURE_POOL (
   pool_name                IN VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL',
   minsize                  IN NUMBER   DEFAULT 4,
   maxsize                  IN NUMBER   DEFAULT 40,
   incrsize                 IN NUMBER   DEFAULT 2,
   session_cached_cursors   IN NUMBER   DEFAULT 20,
   inactivity_timeout       IN NUMBER   DEFAULT 300,
   max_think_time           IN NUMBER   DEFAULT 120,
   max_use_session          IN NUMBER   DEFAULT 500000,
   max_lifetime_session     IN NUMBER   DEFAULT 86400,
   max_txn_think_time       IN NUMBER);

パラメータ

表35-4 CONFIGURE_POOLプロシージャのパラメータ

パラメータ 説明

pool_name

構成するプール。現在は、デフォルトのプール名のみがサポートされています。

minsize

プール内にプールされるサーバーの最小数。

maxsize

プール内にプールできるサーバーの最大数。

incrsize

アプリケーションの要求時に、プールされたサーバーが使用不可になっている場合、プールを増大させるプールされたサーバーの数。

session_cached_cursors

プールのすべての接続でSESSION_CACHED_CURSORSを有効にします。これは、既存のinit.oraパラメータです。

inactivity_timeout

プールのアイドル・セッションのTTL(有効期間)。このパラメータは、プールが最大容量まで使用されていないときに、プールを縮小するのに役立ちます。この期間中プール接続がアイドル状態のまま続くと、接続は切断されます。

max_think_time

プールからオープン・トランザクションが含まれていないプール・サーバーを取得した後のクライアントの最大非アクティブ時間(秒数)。クライアント・アプリケーションが、プールからプール・サーバーを取得した後、MAX_THINK_TIMEで指定した時間内にデータベース・コールを発行しない場合、プール・サーバーは解放されてクライアント接続が終了します。

max_use_session

接続を取得し、プールに解放できる最大回数。

max_lifetime_session

プールされたセッションのTTL(有効期間)。

max_txn_think_time

プールからオープン・トランザクションを含むプール・サーバーを取得した後のクライアントの最大非アクティブ時間(秒数)。クライアント・アプリケーションがプールからプール・サーバーを取得した後、MAX_TXN_THINK_TIMEで指定した時間内にデータベース・コールを発行しない場合、プール・サーバーは解放されてクライアント接続が終了します。このパラメータのデフォルト値は、MAX_THINK_TIMEパラメータの値です。オープン・トランザクションを含む接続のための時間を確保するために、MAX_TXN_THINK_TIMEパラメータの値は、MAX_THINK_TIME値よりも高い値に設定できます。

例外

表35-5 CONFIGURE_POOLプロシージャの例外

例外 説明

ORA-56500

接続プールが見つかりません

ORA-56507

接続プールの変更構成に失敗しました

使用上のノート

  • 時間はすべて秒単位で指定します。

  • すべてのパラメータは、要求パターンの統計に基づいて設定する必要があります。

  • minsizeは、サーバー・リソースの消費に下限が設けられることを考慮して設定する必要があります。このパラメータは、非アクティブ期間が短い場合に、タイムアウトによってプールが極端に少なくなることを防ぎます。

  • maxsizeは、同時実行性、応答時間およびサーバー・リソースの消費に上限が設けられることを考慮して設定する必要があります。

  • session_cached_cursorsは、通常、最も頻繁に使用される文の数に設定されます。これにより、サーバーのカーソル・リソースが占有されます。

  • 不確かな場合は、incrementおよびinactivity_timeoutは設定しないでください。プールには、適切なデフォルト値が使用されます。

  • max_use_sessionおよびmax_lifetime_sessionは、一定期間に新しいセッションを取得することで、潜在的なバグ、リーク、蓄積、問題などに対してソフトウェアの回復または予防的アプローチを可能にします。

  • 接続プールでは、プールされたサーバーの5%が認証のために保持され、少なくとも1つのプールされたサーバーが認証のために常時保持されます。maxsizeパラメータの設定時には、認証と接続の両方に対して十分な数のプールされたサーバーがあることを確認します。

35.1.3 START_POOLプロシージャ

このプロシージャは、操作を行うためにプールを開始します。これがコールされた後に、接続クラスがプールを使用してセッションを作成できます。

構文

DBMS_CONNECTION_POOL.START_POOL (
   pool_name  IN  VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');

パラメータ

表35-6 START_POOLプロシージャのパラメータ

パラメータ 説明

pool_name

開始するプール。現在は、デフォルトのプール名のみがサポートされています。

例外

表35-7 START_POOLプロシージャの例外

例外 説明

ORA-56500

接続プールが見つかりません

ORA-56501

接続プールの起動に失敗しました

使用上のノート

インスタンスを再起動(停止後に起動)すると、プールは自動的に開始されます。

35.1.4 STOP_POOLプロシージャ

このプロシージャは、プールを停止し、登録されている接続クラスに対してプールを使用不可にします。

構文

DBMS_CONNECTION_POOL.STOP_POOL (
   pool_name   IN   VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');

パラメータ

表35-8 STOP_POOLプロシージャのパラメータ

パラメータ 説明

pool_name

停止するプール。現在は、デフォルトのプール名のみがサポートされています。

例外

表35-9 STOP_POOLプロシージャの例外

例外 説明

ORA-56500

接続プールが見つかりません

ORA-56506

接続プールの停止に失敗しました

使用上のノート

このプロシージャにより、プールが停止しオフラインになります。プールに関連付けられた永続的なデータ(プール名、構成パラメータなど)は破損しません。

35.1.5 RESTORE_DEFAULTSプロシージャ

このプロシージャは、プールをデフォルト設定に戻します。

構文

DBMS_CONNECTION_POOL.RESTORE_DEFAULTS (
   pool_name   IN  VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');

パラメータ

表35-10 RESTORE_DEFAULTSプロシージャのパラメータ

パラメータ 説明

pool_name

戻されるプール。現在は、デフォルトのプール名のみがサポートされています。

例外

表35-11 RESTORE_DEFAULTSプロシージャの例外

例外 説明

ORA-56500

接続プールが見つかりません

ORA-56507

接続プールの変更構成に失敗しました

使用上のノート

インスタンスを再起動(停止後に起動)すると、プールは自動的に開始されます。