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