40 DBMS_CONNECTION_POOL
DBMS_CONNECTION_POOL
パッケージは、データベース常駐接続プールを管理するインタフェースを提供します。
参照:
データベース常駐接続プールの詳細は、『Oracle Database概要』を参照してください。
この章では、次の項目について説明します。
40.1 DBMS_CONNECTION_POOLサブプログラムの要約
この表は、DBMS_CONNECTION_POOL
サブプログラムをアルファベット順に示し、簡単に説明しています。
表40-1 DBMS_CONNECTION_POOLパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
特定の構成パラメータをスタンドアロン単位で変更します。他のパラメータは影響を受けません。 |
|
拡張オプションでプールを構成します。 |
|
操作を行うためにプールを開始します。これがコールされた後に、接続クライアントがプールを使用してセッションを作成できます。 |
|
プールを停止し、登録されている接続クライアントに対してプールを使用不可にします。 |
|
プールをデフォルト設定に戻します。 |
40.1.1 ALTER_PARAMプロシージャ
このプロシージャは、特定のデータベース常駐接続プール(DRCP)構成パラメータをスタンドアロン単位で変更します。他のパラメータは影響を受けません。
構文
DBMS_CONNECTION_POOL.ALTER_PARAM ( pool_name IN VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL', param_name IN VARCHAR2, param_value IN VARCHAR2);
パラメータ
表40-2 ALTER_PARAMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成するプール。 現在は、デフォルトのプール名のみがサポートされています。 |
|
管理者は、データベース初期化パラメータ |
|
|
参照:
このプロシージャで構成可能なすべてのDRCPのパラメータのリストおよび説明については、Oracle Database管理者ガイドを参照してください。例外
表40-3 ALTER_PARAMプロシージャの例外
例外 | 説明 |
---|---|
|
接続プールが見つかりません |
|
接続プール構成パラメータ名が無効です |
|
接続プール構成パラメータ値が無効です |
|
接続プールの変更構成に失敗しました |
例
DBMS_CONNECTION_POOL.ALTER_PARAM( 'SYS_DEFAULT_CONNECTION_POOL', 'MAX_LIFETIME_SESSION', '120');
40.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);
パラメータ
表40-4 CONFIGURE_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
構成するプール。現在は、デフォルトのプール名のみがサポートされています。 |
|
プール内にプールされるサーバーの最小数。 |
|
プール内にプールできるサーバーの最大数。 |
|
アプリケーションの要求時に、プールされたサーバーが使用不可になっている場合、プールを増大させるプールされたサーバーの数。 |
|
プールのすべての接続で |
|
プールのアイドル・セッションの |
|
プールからオープン・トランザクションが含まれていないプール・サーバーを取得した後のクライアントの最大非アクティブ時間(秒数)。クライアント・アプリケーションが、プールからプール・サーバーを取得した後、MAX_THINK_TIMEで指定した時間内にデータベース・コールを発行しない場合、プール・サーバーは解放されてクライアント接続が終了します。 |
|
接続を取得し、プールに解放できる最大回数。 |
|
プールされたセッションの |
|
プールからオープン・トランザクションを含むプール・サーバーを取得した後のクライアントの最大非アクティブ時間(秒数)。クライアント・アプリケーションがプールからプール・サーバーを取得した後、MAX_TXN_THINK_TIMEで指定した時間内にデータベース・コールを発行しない場合、プール・サーバーは解放されてクライアント接続が終了します。このパラメータのデフォルト値は、MAX_THINK_TIMEパラメータの値です。オープン・トランザクションを含む接続のための時間を確保するために、MAX_TXN_THINK_TIMEパラメータの値は、MAX_THINK_TIME値よりも高い値に設定できます。 |
例外
表40-5 CONFIGURE_POOLプロシージャの例外
例外 | 説明 |
---|---|
|
接続プールが見つかりません |
|
接続プールの変更構成に失敗しました |
使用上のノート
-
時間はすべて秒単位で指定します。
-
すべてのパラメータは、要求パターンの統計に基づいて設定する必要があります。
-
minsize
は、サーバー・リソースの消費に下限が設けられることを考慮して設定する必要があります。このパラメータは、非アクティブ期間が短い場合に、タイムアウトによってプールが極端に少なくなることを防ぎます。 -
maxsize
は、同時実行性、応答時間およびサーバー・リソースの消費に上限が設けられることを考慮して設定する必要があります。 -
session_cached_cursors
は、通常、最も頻繁に使用される文の数に設定されます。これにより、サーバーのカーソル・リソースが占有されます。 -
不確かな場合は、
increment
およびinactivity_timeout
は設定しないでください。プールには、適切なデフォルト値が使用されます。 -
max_use_session
およびmax_lifetime_session
は、一定期間に新しいセッションを取得することで、潜在的なバグ、リーク、蓄積、問題などに対してソフトウェアの回復または予防的アプローチを可能にします。 -
接続プールでは、プールされたサーバーの5%が認証のために保持され、少なくとも1つのプールされたサーバーが認証のために常時保持されます。
maxsize
パラメータの設定時には、認証と接続の両方に対して十分な数のプールされたサーバーがあることを確認します。
40.1.3 START_POOLプロシージャ
このプロシージャは、操作を行うためにプールを開始します。これがコールされた後に、接続クラスがプールを使用してセッションを作成できます。
構文
DBMS_CONNECTION_POOL.START_POOL ( pool_name IN VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');
パラメータ
表40-6 START_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
開始するプール。現在は、デフォルトのプール名のみがサポートされています。 |
例外
表40-7 START_POOLプロシージャの例外
例外 | 説明 |
---|---|
|
接続プールが見つかりません |
|
接続プールの起動に失敗しました |
使用上のノート
インスタンスを再起動(停止後に起動)すると、プールは自動的に開始されます。
40.1.4 STOP_POOLプロシージャ
このプロシージャは、プールを停止し、登録されている接続クラスに対してプールを使用不可にします。
構文
DBMS_CONNECTION_POOL.STOP_POOL ( pool_name IN VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');
パラメータ
表40-8 STOP_POOLプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
停止するプール。現在は、デフォルトのプール名のみがサポートされています。 |
例外
表40-9 STOP_POOLプロシージャの例外
例外 | 説明 |
---|---|
|
接続プールが見つかりません |
|
接続プールの停止に失敗しました |
使用上のノート
このプロシージャにより、プールが停止しオフラインになります。プールに関連付けられた永続的なデータ(プール名、構成パラメータなど)は破損しません。
40.1.5 RESTORE_DEFAULTSプロシージャ
このプロシージャは、プールをデフォルト設定に戻します。
構文
DBMS_CONNECTION_POOL.RESTORE_DEFAULTS ( pool_name IN VARCHAR2 DEFAULT 'SYS_DEFAULT_CONNECTION_POOL');
パラメータ
表40-10 RESTORE_DEFAULTSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
戻されるプール。現在は、デフォルトのプール名のみがサポートされています。 |
例外
表40-11 RESTORE_DEFAULTSプロシージャの例外
例外 | 説明 |
---|---|
|
接続プールが見つかりません |
|
接続プールの変更構成に失敗しました |
使用上のノート
インスタンスを再起動(停止後に起動)すると、プールは自動的に開始されます。