22 DBMS_APP_CONT_ADMIN

このパッケージは、アプリケーション・コンティニュイティに関連するコレクションDBAレベルの管理操作を提供します。

この章のトピックは、次のとおりです:

DBMS_APP_CONT_ADMINのセキュリティ・モデル

アプリケーションでは、DBMS_APP_CONT_ADMINパッケージのEXECUTE権限が必要です。

DBMS_APP_CONT_ADMINサブプログラムの要約

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

表22-1 DBMS_APP_CONT_ADMINパッケージ・サブプログラム

サブプログラム 説明

ACCHK_CLEAR_FILTERプロシージャ

このプロシージャでは、フィルタ・タイプとフィルタ名を指定することでACCHKフィルタをクリアします。
ACCHK_PURGEプロシージャ このプロシージャは、以前に収集されたすべてのACCHK情報をパージします。
ACCHK_SETプロシージャ このプロシージャは、アプリケーション・コンティニュイティまたは透過的アプリケーション・コンティニュイティの使用時に、アプリケーションのacchk保護のためのデータ収集を有効または無効にします。 DISABLE_TIMEパラメータは、ランタイムの拡張に使用します。 デフォルトは5分です。

ACCHK_SET_FILTERプロシージャ

このプロシージャでは、サービス名、モジュール名、プログラム名およびマシン名によってacchk保護分析のACCHKフィルタリング・オプションを設定します。

ACCHK_SHOW_FILTERSプロシージャ

このプロシージャは、ACCHKフィルタをサービス、プログラム、モジュール、およびマシン名の順に並べ替えて表示するためにカーソルを使用します。

CHECK_REPLAY_RULESプロシージャ

このプロシージャは、指定されたサービスまたは現在のサービスに対するリプレイ・ルールを表示し、ターゲット引数でリプレイ可能なターゲットをビットマップとして返します。

ADD_SQL_CONNECTION_TESTプロシージャ

このプロシージャは、計画メンテナンスが開始される前の、セッションの排出中に使用する新しい接続テストを追加します。

DELETE_SQL_CONNECTION_TESTプロシージャ

このプロシージャは、計画排出で不要になった接続テストを削除します。 テストを削除すると、PDBがオープンしているすべてのRACインスタンスにすぐに適用されます。

DISABLE_CONNECTION_TESTプロシージャ

このプロシージャは、セッションの排出中に接続テストの使用を無効にします。
DISABLE_FAILOVERプロシージャ このプロシージャでは、特定のサービスのフェイルオーバーを無効にします。
ENABLE_ACプロシージャ このプロシージャは、特定のサービスのアプリケーション・コンティニュイティ(AC)を有効にします。
ENABLE_CONNECTION_TESTプロシージャ このプロシージャは、計画メンテナンスの前のデータベース・セッション排出用の接続テストの使用を有効にします。 テストを有効にすると、PDBがオープンしているすべてのRACインスタンスにすぐに適用されます。
ENABLE_RESET_STATEプロシージャ このプロシージャでは、リクエスト間でセッション状態の使用状況をクリアできるようにして、新しいリクエストごとにクリーンな状態で(使用状況Webおよびステートレス・アプリケーションが)始まるようにします。
ENABLE_TACプロシージャ このプロシージャでは、特定のサービスの透過的アプリケーション・コンティニュイティ(TAC)を有効にします。
ENABLE_TAFプロシージャ このプロシージャは、特定のサービスに対して透過的アプリケーション・フェイルオーバー(TAF)を有効にします。
ENABLE_TGプロシージャ このプロシージャは、特定のサービスでトランザクション・ガードを有効にします。
MODIFY_SERVICEプロシージャ このプロシージャでは、指定のパラメータを使用してデータベース・サービスを変更します。
RESET_REPLAY_RULESプロシージャ このプロシージャは、指定されたサービスまたは現在のサービスのリプレイ・ルールをリセットします。
SET_DRAININGプロシージャ このプロシージャでは、タイムアウト値や停止オプションなど、サービスの排出オプションを構成します。
SET_LOAD_BALANCINGプロシージャ このプロシージャでは、サービスのロード・バランシング・オプションを構成します。
SET_REPLAY_RULESプロシージャ このプロシージャは、指定されたサービスまたは現在のサービスのリプレイ・ルールを設定します。

ACCHK_CLEAR_FILTERプロシージャ

このプロシージャでは、フィルタ・タイプ、フィルタ名またはすべてのフィルタを指定することでACCHKフィルタをクリアします。

  • フィルタをロードするACCHK_SETの前に、ACCHK_CLEAR_FILTERをコールする必要があります。
  • ACCHK_CLEAR_FILTERは、PDBレベルで設定されます。

構文

DBMS_APP_CONT_ADMIN.ACCHK_CLEAR_FILTER (
   filter_type IN NUMBER   DEFAULT NULL,
   filter_name IN VARCHAR2 DEFAULT NULL,
   purge_all   IN BOOLEAN  DEFAULT FALSE);

パラメータ

表22-2 ACCHK_CLEAR_FILTERプロシージャのパラメータ

パラメータ 説明

filter_type

フィルタのタイプ。DBMS_APP_CONT_ADMINパッケージの定数SERVICE_FILTERPROGRAM_FILTERMODULE_FILTERまたはMACHINE_FILTERのいずれかになります。

filter_name

削除するフィルタの名前(purge_allがFALSEの場合)。

purge_all
このパラメータは、すべてのフィルタを削除する場合に使用します。
  • TRUE- すべてのフィルタの削除を有効にします。
  • FALSE- すべてのフィルタの削除を無効にします。 このパラメータがFALSEに設定されていると、指定したフィルタのみが削除されます。

エラー・メッセージ

表22-3 ACCHK_CLEAR_FILTERプロシージャのエラー・メッセージ

エラー・コード 説明

ORA-20000

指定されたフィルタ名が最大文字数を超えています。

ORA-20000

フィルタ・タイプ値が無効です。

ORA-20000

フィルタ名が指定されていません。

次の例は、ACCHKサービスフィルタをクリアする方法を示しています:
SQL> execute dbms_app_cont_admin.acchk_clear_filter(DBMS_APP_CONT_ADMIN.SERVICE_FILTER, 'ORACLE.Service1');

ACCHK_PURGEプロシージャ

このプロシージャは、以前に収集されたすべてのACCHK情報をパージします。

  • フィルタをロードするACCHK_SETの前に、ACCHK_PURGEをコールする必要があります。
  • ACCHK_PURGEはPDBレベルで設定されます。

構文

DBMS_APP_CONT_ADMIN.ACCHK_PURGE (
   start_time IN DATE    DEFAULT NULL,
   end_time   IN DATE    DEFAULT NULL,
   purge_all  IN BOOLEAN DEFAULT FALSE);

パラメータ

表22-4 ACCHK_PURGEプロシージャのパラメータ

パラメータ 説明

start_time

ACCHK情報をパージする開始時間。

end_time

ACCHK情報をパージする終了時間。

purge_all
このパラメータは、すべてのACCHK情報を削除するために使用されます。
  • TRUE- すべてのACCHK情報を削除します。
  • FALSE- すべてのACCHK情報の削除を無効にします。 このパラメータをFALSEに設定すると、指定されたACCHK情報のみが削除されます。

次の例は、すべてのACCHK情報をパージする方法を示しています:
SQL> execute dbms_app_cont_admin.acchk_purge(purge_all => TRUE);

ACCHK_SETプロシージャ

このプロシージャは、アプリケーション・コンティニュイティまたは透過的アプリケーション・コンティニュイティの使用時に、アプリケーションのacchk保護レポートのデータ収集を有効または無効にします。 DISABLE_TIMEパラメータは、ランタイムの拡張に使用します。 デフォルト値は10分です。

データ収集の有効化または無効化は、接続されているレベル(CDBまたはPDB)に適用されます。
  • acchkは、コンテナに接続されている場合、CDBで有効/無効になります。
  • acchkは、PDBへの接続時にのみPDBで有効/無効になります。

データ収集は、新規セッションにのみ適用されます。

有効にすると、このサービスで実行されるワークロードのデータが収集されます。 その後、このデータをACCHK_REPORTで表示でき、ACCHKビューでマイニングすることもできます。

構文

DBMS_APP_CONT_ADMIN.ACCHK_SET (
   enabled                  IN BOOLEAN,
   disable_time_in_seconds  DEFAULT 600);

パラメータ

表22-5 ACCHK_SETプロシージャのパラメータ

パラメータ 説明

enabled

このパラメータは、CDBレベルまたはPDBレベルでデータ収集を有効または無効にするために使用します。
  • TRUE: このレベルでデータ収集を有効にします。
  • FALSE: データ収集を明示的に無効にします。

disable_time_in_seconds

指定した秒数でACCHKトレースを自動的に無効にするために使用するオプションのパラメータ。

指定できる最大値は3600秒です。

デフォルト値は600秒です。

使用上のノート

  • このプロシージャの所有者は、CDB$ROOTレベルまたはPDBレベルではSYSであり、マルチテナントでない場合にはSYSです
  • acchkアクティブ化は、そのサービスをサポートするRACのすべてのインスタンスで有効になります。
  • 有効化は、フェイルオーバーおよび再起動テストを考慮して永続します。つまり、実装ではALTER SESSION SET EVENTS ….. SCOPE=BOTHが使用されます。 有効化はデータベースごとです。 Data Guardの場合、データベースごとに有効および無効にする必要があります。

アプリケーション・コンティニュイティ保護チェックは、デフォルトでは有効になっていません。 次の手順に従って、ACCHKを有効または無効にし、アプリケーションの保護レベルをチェックするレポートを生成します。

  1. ACCHK_READロールを使用して、アプリケーション・コンティニュイティ保護チェックのレポートおよびビューを実行するユーザーに読取りアクセス権を付与します。

    GRANT ACCHK_READ TO USER;
  2. dbms_app_cont_admin.acchk_set(true)プロシージャを使用して、アプリケーションのアプリケーション・コンティニュイティ・トレースを有効にします。
    SQL> execute dbms_app_cont_admin.acchk_set(true);

    デフォルトでは、ACCHKは600秒後に自動的に無効になります。 これより小さい数値を指定すると、自動無効化時間を短縮できます。 たとえば、300秒後にACCHKを無効にするには、次のようにします。

    SQL> dbms_app_cont_admin.acchk_set(true,300);

    dbms_app_cont_admin.acchk_set(true)プロシージャは、接続しているデータベース・レベルでアプリケーション・コンティニュイティ・トレースを有効にします。 CDBレベルで接続している場合はCDBに対してトレースが有効になり、PDBレベルで接続している場合はPDBに対してトレースが有効になります。

    ノート:

    COMPATIBLEパラメータを12.2.0以上に設定します。
  3. アプリケーションの新しいセッションのアプリケーション・コンティニュイティ・トレースを無効にするには:

    SQL> execute dbms_app_cont_admin.acchk_set(false);

    ノート:

    現在のセッションのトレースは、セッションが終了するまで無効になりません。

ACCHK_SET_FILTERプロシージャ

このプロシージャでは、サービス名、モジュール名、プログラム名およびマシン名によってacchk保護分析のACCHKフィルタリング・オプションを設定します。

フィルタ・オプションは、このプロシージャの複数回のコールによって累積されます。
  • フィルタをロードするACCHK_SETの前に、ACCHK_SET_FILTERをコールする必要があります。
  • ACCHK_SET_FILTERは、PDBレベルで設定されます。

構文

DBMS_APP_CONT_ADMIN.ACCHK_SET_FILTER (
   filter_type IN NUMBER,
   filter_name IN VARCHAR2);

パラメータ

表22-6 ACCHK_SET_FILTERプロシージャのパラメータ

パラメータ 説明

filter_type

フィルタのタイプ。DBMS_APP_CONT_ADMINパッケージの定数SERVICE_FILTERPROGRAM_FILTERMODULE_FILTERまたはMACHINE_FILTERのいずれかになります。

filter_name

フィルタの名前。サービス名、プログラム名、モジュール名またはマシン名と一致する必要があります。

エラー・メッセージ

表22-7 ACCHK_SET_FILTERプロシージャのエラー・メッセージ

エラー・コード 説明

ORA-20000

指定されたフィルタ名が最大文字数を超えています。

ORA-20000

サービスservice_nameが存在しません。

ORA-20000

フィルタ・タイプ値が無効です。

ORA-20000

フィルタ名が指定されていません。

ORA-20000

制限に達しました。許可されるフィルタは1024個のみです。

ORA-20000

フィルタ名はすでに存在しています。

次の例は、ACCHK定数のフィルタを設定する方法を示しています:
  • サービス・フィルタを設定するには:
    SQL> execute dbms_app_cont_admin.acchk_set_filter(DBMS_APP_CONT_ADMIN.SERVICE_FILTER, 'ORACLE.Service1');
  • プログラム・フィルタを設定するには:
    SQL> execute dbms_app_cont_admin.acchk_set_filter(DBMS_APP_CONT_ADMIN.PROGRAM_FILTER, 'Oracle.Program');
  • モジュール・フィルタを設定するには:
    SQL> execute dbms_app_cont_admin.acchk_set_filter(DBMS_APP_CONT_ADMIN.MODULE_FILTER, 'Oracle.Module');

ACCHK_SHOW_FILTERSプロシージャ

このプロシージャは、ACCHKフィルタをサービス、プログラム、モジュール、およびマシン名の順に並べ替えて表示するためにカーソルを使用します。

構文

DBMS_APP_CONT_ADMIN.ACCHK_SHOW_FILTERS;

次の例は、ACCHKフィルタを表示する方法を示しています:
SQL> execute dbms_app_cont_admin.acchk_show_filters;
ResultSet TYPE  FILTER_NAME  SERVICE          PROGRAM            MODULE 
#1                           oracle.service1  oracle.program     oracle.module

ADD_SQL_CONNECTION_TESTプロシージャ

このプロシージャは、計画メンテナンスが開始される前の、セッションの排出中に使用する新しい接続テストを追加します。 このプロシージャは、SQL接続テストが標準テストでカバーされていない場合に使用します。 このテストは、追加されたときに有効になります。 オプションのサービス名修飾子が指定されている場合、テストはそのサービス名にのみ適用されます。

構文

DBMS_APP_CONT_ADMIN.ADD_SQL_CONNECTION_TEST (
   connection_test          IN VARCHAR2
   service_name             IN VARCHAR2   DEFAULT NULL);

パラメータ

表22-8 ADD_SQL_CONNECTION_TESTプロシージャのパラメータ

パラメータ 説明

CONNECTION_TEST

接続のテストおよび排出に使用されるSQLテキスト。

SERVICE_NAME

オプションのサービス名修飾子。

使用上のノート

ADD_SQL_CONNECTION_TESTプロシージャは、計画メンテナンスが開始される前のセッション排出用の接続テストを追加します。 接続テストはアプリケーションで使用され、排出対象としてマークされている接続をテストします。 セッションは、サービスまたはPDBの停止操作および再配置操作で排出するために設定されます。 排出中にRDBMSが接続をクローズするように設定されている場合は、計画メンテナンス中にエラーが表示されません。 CONNECTION TESTは必要な数だけ入力できます。 これらは、計画メンテナンス中にのみ使用されます。 このテストは、すべてのRACインスタンスに適用されます。

サービス修飾子の可用性に関する最新の更新は、オンライン・ドキュメントを参照してください。

追加された接続を表示するには、ビューDBA_CONNECTION_TESTSを問い合せます。

このプロシージャの所有者はSYSであり、CDB$ROOTレベルまたはPDBレベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます。

CHECK_REPLAY_RULESプロシージャ

このプロシージャは、指定されたサービスまたは現在のサービスに対するリプレイ・ルールを表示し、ターゲット引数でリプレイ可能なターゲットをビットマップとして返します。

構文

DBMS_APP_CONT_ADMIN.CHECK_REPLAY_RULES (
 service_name  IN  VARCHAR2        DEFAULT NULL
 targets       OUT BINARY_INTEGER);

パラメータ

表22-9 CHECK_REPLAY_RULESプロシージャのパラメータ

パラメータ 説明

service_name

オプションのサービス名修飾子。 オプションのSERVICE_NAME修飾子が指定されていない場合、現在のサービスのリプレイ・ルールが表示されます。

targets

ビットマップ内のリプレイ可能なターゲット。 BITANDファンクションを使用すると、次のいずれかのターゲットがリプレイ可能かどうかをテストできます:
  • dbms_app_cont_admin.side_effects
  • dbms_app_cont_admin.autonomous_transactions
  • dbms_app_cont_admin.database_links

CREATE_CHILD_SERVICEプロシージャ

このプロシージャは、既存の親サービスの子サービスを作成します。

ノート:

親サービスが起動されると、親サービスがアクティブなすべての同じインスタンスで子サービスが起動されます。

構文

DBMS_APP_CONT_ADMIN.CREATE_CHILD_SERVICE (
 child_service_name  IN  VARCHAR2,
 parent_service_name IN  VARCHAR2);

パラメータ

表22-10 CREATE_CHILD_SERVICEプロシージャのパラメータ

パラメータ 説明

child_service_name

作成する新しい子サービスの名前。

parent_service_name

子サービスを作成する親サービスの名前。

DELETE_CHILD_SERVICEプロシージャ

このプロシージャは、既存の親サービスから子サービスを削除します。

ノート:

子サービスがいずれかのインスタンスでアクティブになっている場合、子サービスは削除される前に停止されます。

構文

DBMS_APP_CONT_ADMIN.DELETE_CHILD_SERVICE (
 child_service_name  IN  VARCHAR2,
 parent_service_name IN  VARCHAR2);

パラメータ

表22-11 DELETE_CHILD_SERVICEプロシージャのパラメータ

パラメータ 説明

child_service_name

削除する既存の子サービスの名前。

parent_service_name

指定された子サービスを削除する親サービスの名前。

DELETE_SQL_CONNECTION_TESTプロシージャ

このプロシージャは、計画排出で不要になった接続テストを削除します。 テストを削除すると、PDBがオープンしているすべてのRACインスタンスにすぐに適用されます。

構文

DBMS_APP_CONT_ADMIN.DELETE_SQL_CONNECTION_TEST (
   connection_test          IN VARCHAR2
   service_name             IN VARCHAR2   DEFAULT NULL);

パラメータ

表22-12 DELETE_SQL_CONNECTION_TESTプロシージャのパラメータ

パラメータ 説明

CONNECTION_TEST

接続のテストおよび排出に使用されるSQLテキスト。

SERVICE_NAME

オプションのサービス名修飾子。

オプションのSERVICE_NAME修飾子が指定されている場合は、そのサービス名に対するテストのみが削除されます。

使用上のノート

テストを削除する必要があるかどうかがわからない場合は、DISABLE_CONNECTION_TESTプロシージャを使用して、テストを無効にできます。 削除できるのはカスタムSQLテストのみです。 事前定義済のテストは削除できません。 サービス修飾子の可用性に関する最新の更新を確認してください。

このプロシージャの所有者は、CDB$ROOTレベルまたはPDBレベルではSYSであり、マルチテナントでない場合はSYSです。

接続テストとそのステータスをチェックするには、ビューDBA_CONNECTION_TESTSを問い合せます。

DISABLE_CONNECTION_TESTプロシージャ

このプロシージャは、セッションの排出中に接続テストの使用を無効にします。 テストを無効にすると、PDBがオープンしているすべてのRACインスタンスにすぐに適用されます。

構文

DBMS_APP_CONT_ADMIN.DISABLE_CONNECTION_TEST (
   connection_test_type     IN VARCHAR2,
   connection_test          IN VARCHAR2,
   service_name             IN VARCHAR2   DEFAULT NULL);

パラメータ

表22-13 DISABLE_CONNECTION_TESTプロシージャのパラメータ

パラメータ 説明

CONNECTION_TEST_TYPE

使用可能な値は次のとおりです。

  • DBMS_APP_CONT_ADMIN.SQL_TEST

  • DBMS_APP_CONT_ADMIN.PING_TEST

  • DBMS_APP_CONT_ADMIN.ENDREQUEST_TEST

CONNECTION_TEST

接続のテストおよび排出に使用されるSQLテキスト。

このパラメータは、CONNECTION_TEST_TYPEの値がSQL_TESTの場合にのみ使用できます。

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、そのサービス名に対するテストのみが有効になります。 サービス名レベルでの無効化は、PDBレベルでの有効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

使用上のノート

このプロシージャの所有者はSYSであり、CDB$ROOTレベルまたはPDBレベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます。

接続テストとそのステータスをチェックするには、ビューDBA_CONNECTION_TESTSを問い合せます。

DISABLE_FAILOVERプロシージャ

このプロシージャでは、特定のサービスのフェイルオーバーを無効にします。

構文

DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER (
    service_name IN VARCHAR2);

パラメータ

表22-14 DISABLE_FAILOVERプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、そのサービス名に対してのみフェイルオーバーが無効になります。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • フェイルオーバーを無効にする完全なサービス名を使用します。

次の例は、サービスのフェイルオーバーを無効にする方法を示しています:
SQL> execute dbms_app_cont_admin.disable_failover('TPURGENT');

DISABLE_SMART_CONNECTIONプロシージャ

このプロシージャは、指定されたサービスのスマート接続を無効にします。つまり、GOALGOAL_NONEに設定されます。

ノート:

サービスに子がある場合、これらのサービスに対してもスマート接続が無効になります。

構文

DBMS_APP_CONT_ADMIN.DISABLE_SMART_CONNECTION (
 service_name  IN  VARCHAR2);

パラメータ

表22-15 DISABLE_SMART_CONNECTIONプロシージャのパラメータ

パラメータ 説明

service_name

オプションのサービス名修飾子。 オプションのSERVICE_NAME修飾子が指定されていない場合、現在のサービスではスマート接続が無効になります。

ENABLE_ACプロシージャ

このプロシージャは、特定のサービスのアプリケーション・コンティニュイティ(AC)を有効にします。

構文

DBMS_APP_CONT_ADMIN.ENABLE_AC (
   service_name              IN VARCHAR2,
   failover_restore          IN VARCHAR2       DEFAULT 'LEVEL1'
   replay_initiation_timeout IN BINARY_INTEGER DEFAULT 300);

パラメータ

表22-16 ENABLE_ACプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、指定されたサービスに対してのみACが有効になります。 サービス名レベルでの有効化は、より高いレベルでの無効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

FAILOVER_RESTORE

フェイルオーバー・リストア。 有効な値は、NONEまたはLEVEL1です。

REPLAY_INITIATION_TIMEOUT

リプレイ・タイムアウト。リクエストの送信後に、そのリクエストがリプレイできるようになるまでの秒数を指定します。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • ACを有効にする完全なサービス名を使用します。

次の例は、サービスのアプリケーション・コンティニュイティを有効にする方法を示しています:
SQL> execute dbms_app_cont_admin.enable_ac('TPURGENT', 'LEVEL1', 600);

ENABLE_CONNECTION_TESTプロシージャ

このプロシージャは、計画メンテナンスの前のデータベース・セッション排出用の接続テストの使用を有効にします。 テストを有効にすると、PDBがオープンしているすべてのRACインスタンスにすぐに適用されます。

構文

DBMS_APP_CONT_ADMIN.ENABLE_CONNECTION_TEST (
   connection_test_type     IN VARCHAR2,
   connection_test          IN VARCHAR2,
   service_name             IN VARCHAR2   DEFAULT NULL);

パラメータ

表22-17 ENABLE_CONNECTION_TESTプロシージャのパラメータ

パラメータ 説明

CONNECTION_TEST_TYPE

計画メンテナンスの前の排出用の接続テストを管理するときに使用される接続タイプ。 接続テストについては、ADD、DELETE、ENABLE、DISABLEプロシージャを参照してください。

使用可能な値は次のとおりです。

  • DBMS_APP_CONT_ADMIN.SQL_TEST

  • DBMS_APP_CONT_ADMIN.PING_TEST

  • DBMS_APP_CONT_ADMIN.ENDREQUEST_TEST

  • DBMS_APP_CONT_ADMIN.BEGINREQUEST_TEST

CONNECTION_TEST

計画メンテナンスが開始される前にRDBMSで接続をテストおよび排出するために使用されるSQLテキスト。

このパラメータは、CONNECTION_TEST_TYPEの値がSQL_TESTの場合にのみ使用できます。

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、そのサービス名に対するテストのみが有効になります。 サービス名レベルでの有効化は、より高いレベルでの無効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

使用上のノート

  • このプロシージャの所有者はSYSであり、CDB$ROOTレベルまたはPDBレベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます

  • ENABLE_CONNECTION_TESTにより、計画メンテナンス中のセッション排出用の接続テストが有効になります。 有効化操作は、PDBがオープンしているすべてのRACインスタンスに適用されます。 これは、データベースの再起動後も維持されます。

  • このプロシージャの所有者はSYSであり、CDB$ROOTレベルまたはPDBレベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます。

ENABLE_RESET_STATEプロシージャ

このプロシージャでは、リクエスト間でセッション状態の使用状況をクリアできるようにして、新しいリクエストごとにクリーンな状態で(使用状況Webおよびステートレス・アプリケーションが)始まるようにします。

構文

DBMS_APP_CONT_ADMIN.ENABLE_RESET_STATE (
   service_name IN VARCHAR2,
   level        IN VARCHAR2 DEFAULT AUTO);

パラメータ

表22-18 ENABLE_RESET_STATEプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、指定されたサービスに対してのみRESET_STATEが有効になります。

LEVEL

Oracle Databaseセッション状態のリセット構成のレベル。 使用可能なオプションは、LEVEL1LEVEL2またはAUTOです。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • セッション状態をクリアする完全なサービス名を使用します。

次の例は、サービスの状態のリセットを有効にする方法を示しています:
SQL> execute dbms_app_cont_admin.enable_reset_state('TPURGENT', 'AUTO');

ENABLE_SMART_CONNECTIONプロシージャ

このプロシージャは、指定されたサービスのスマート接続を有効にします。つまり、GOALSMART_CONNに設定されます。

ノート:

サービスに子がある場合、これらのサービスに対してもスマート接続が有効になります。

構文

DBMS_APP_CONT_ADMIN.ENABLE_SMART_CONNECTION (
 service_name  IN  VARCHAR2);

パラメータ

表22-19 ENABLE_SMART_CONNECTIONプロシージャのパラメータ

パラメータ 説明

service_name

オプションのサービス名修飾子。 オプションのSERVICE_NAME修飾子を指定しない場合、現在のサービスに対してスマート接続が有効になります。

ENABLE_TACプロシージャ

このプロシージャでは、特定のサービスの透過的アプリケーション・コンティニュイティ(TAC)を有効にします。

構文

DBMS_APP_CONT_ADMIN.ENABLE_TAC (
   service_name              IN VARCHAR2,
   failover_restore          IN VARCHAR2       DEFAULT 'AUTO'
   replay_initiation_timeout IN BINARY_INTEGER DEFAULT 300
   session_state_consistency IN VARCHAR2       DEFAULT 'AUTO');

パラメータ

表22-20 ENABLE_TACプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、指定されたサービスに対してのみTACが有効になります。 サービス名レベルでの有効化は、より高いレベルでの無効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

FAILOVER_RESTORE

フェイルオーバー・リストア。 有効な値は、AUTOまたはLEVEL1です。

REPLAY_INITIATION_TIMEOUT

リプレイ・タイムアウト。リクエストの送信後に、そのリクエストがリプレイできるようになるまでの秒数を指定します。

SESSION_STATE_CONSISTENCY

セッション状態一貫性。 有効な値は、AUTOまたはHYBRIDです。

例外

  • FAILOVER_RESTORENULLに設定されている場合、またはFAILOVER_RESTOREAUTOまたはLEVEL1に設定されていない場合: ORA-20000 - failover_restoreパラメータが無効です。
  • SESSION_STATE_CONSISTENCYNULLに設定されている場合、またはSESSION_STATE_CONSISTENCYAUTOとして設定されていない場合: ORA-20000 - session_state_consistencyパラメータが無効です。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • TACを有効にする完全なサービス名を使用します。

次の例は、サービスの透過的アプリケーション・コンティニュイティを有効にする方法を示しています:
SQL> execute dbms_app_cont_admin.enable_tac('TPURGENT', 'AUTO', 600, 'AUTO');

ENABLE_TAFプロシージャ

このプロシージャは、特定のサービスに対して透過的アプリケーション・フェイルオーバー(TAF)を有効にします。

構文

DBMS_APP_CONT_ADMIN.ENABLE_TAF (
   service_name      IN VARCHAR2,
   failover_type     IN VARCHAR2  DEFAULT 'AUTO'
   failover_restore  IN VARCHAR2  DEFAULT 'LEVEL1');

パラメータ

表22-21 ENABLE_TAFプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合、TAFは指定されたサービスに対してのみ有効になります。 サービス名レベルでの有効化は、より高いレベルでの無効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

FAILOVER_TYPE

フェイルオーバーのタイプ。 指定可能な値は、LOWMEDIUMまたはHIGHです。

FAILOVER_RESTORE

フェイルオーバー・リストア。 有効な値は、NONEまたはLEVEL1です。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • TAFを有効にする完全なサービス名を使用します。

次の例は、現在のサービスに対してTAF SELECTを有効にする方法を示しています:
SQL> execute dbms_app_cont_admin.enable_taf(`LOW`);
次の例では、現在のサービスに対してTAF BASICを有効にする方法を示します:
SQL> execute dbms_app_cont_admin.enable_taf(`MEDIUM`, `SESSION`);

ENABLE_TGプロシージャ

このプロシージャは、特定のサービスでトランザクション・ガードを有効にします。

構文

DBMS_APP_CONT_ADMIN.ENABLE_TG (
   service_name IN VARCHAR2);

パラメータ

表22-22 ENABLE_TGプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、指定されたサービスに対してのみACが有効になります。 サービス名レベルでの有効化は、より高いレベルでの無効化よりも優先されます。 つまり、PDBを有効化でき、サービスは無効になります。

使用上のノート

  • このプロシージャを使用する場合は、PDBADMINユーザー権限が必要になります。
  • トランザクション・ガードを有効にする完全なサービス名を使用します。

次の例は、サービスに対してトランザクション・ガードを有効にする方法を示しています:
SQL> execute dbms_app_cont_admin.enable_tg('TPURGENT');

MODIFY_SERVICEプロシージャ

このプロシージャでは、指定のパラメータを使用してデータベース・サービスを変更します。

構文

DBMS_APP_CONT_ADMIN.MODIFY_SERVICE(
   service_name   IN VARCHAR2, 
   service_params IN svc_parameter_array);

パラメータ

表22-23 MODIFY_SERVICEプロシージャのパラメータ

パラメータ 説明

service_name

データ・ディクショナリでのサービスの名前です(64文字まで使用可能)。

parameter_array

サービス属性の名前/値ペアに関連付けられた配列。 次の名前がサポートされています。

  • aq_ha_notifications

  • auto_connection_rebalance

  • clb_goal

  • commit_fast_path

  • commit_outcome

  • drain_timeout

  • edition

  • failover_delay

  • failover_method

  • failover_restore

  • failover_retries

  • failover_type

  • goal

  • replay_initiation_timeout

  • reset_state

  • retention_timeout

  • session_state_consistency

  • sql_translation_profile

  • stop_option

  • template_timeout

  • true_cache_service

aq_ha_notifications

OCI/OCCI/ODPでFast Application Notification(FAN)を使用できるかどうかを指定します。 Oracle Database12cでは、FANはOracle Notification Services(ONS)を使用します。 このパラメータは、FANを有効にするために引き続き使用されます。 FANはすべての高可用性システムで推奨されているため、アプリケーション・コンティニュイティではデフォルトで有効になっています。

auto_connection_rebalance

ワークロード管理を自動的に均衡化します。

clb_goal

接続ロード・バランシングの目標(LONGまたはSHORT)。

commit_fast_path

Oracle Databaseトランザクション・ガードを有効または無効にします。

commit_outcome

トランザクションCOMMITが実行された後に、COMMITの結果にアクセスできるかどうかを指定します。 COMMITが永続的であることはデータベースによって保証されますが、これによってCOMMITの結果も永続的であることが保証されます。アプリケーションでは、停止後にこの機能を使用して、最後に実行されたコミットのステータスを調べて、その結果を確認できます。 ノート:

  • DBMS_APP_CONT パッケージのGET_LTXID_OUTCOMEプロシージャを起動するには、commit_outcome属性が設定されている必要があります。

  • commit_outcomeは、アクティブなData Guardデータベースと読取り専用データベースには影響を及ぼしません。

  • commit_outcomeは、ユーザー定義データベース・サービスでのみ許可されます。

drain_timeout

このパラメータを設定した場合、サービスに接続されているすべてのセッションは、Fast Connection Failover (FCF)を使用するクライアント・ドライバおよびプールによって排出されます。 drain_timeoutはサービスに対して設定でき、デフォルトではこの期間排出を停止および再配置します。

edition

この引数がNULL以外の値の場合、エディションの指定がない(このサービスを使用する)後続のデータベース接続に対して初期セッション・エディションが指定されます。 値を指定しない場合、この引数の効果はありません。

サービスの作成中または変更中に、このパラメータの検証は行われません。

接続時に、接続ユーザーがエディションに対するUSE権限を持っていないか、エディションが存在しない場合、ORA-38802エラー(エディションが存在しません)が発生します。

failover_delay

アプリケーション・コンティニュイティとTAFが接続を再試行するまでの遅延秒数です。 アプリケーション・コンティニュイティに対するデフォルト値は10秒です。 サービスによるフェイルオーバーと登録に時間がかかる場合は、遅延時間を0秒に指定しないでください。 長い遅延時間は、計画済停止やData Guardへのフェイルオーバーでは有効です。 サービスがすでに提供されているOracle RACでは、短い遅延時間が効率的です。

failover_method

アプリケーション・コンティニュイティとTAFに使用するサービスのフェイルオーバーTYPEです。 サービスのfailover_typeTRANSACTIONに設定されている場合、COMMIT_OUTCOMEは自動的にTRUEに設定されます。 JDBCリプレイ・ドライバは、TRANSACTIONFAILOVER_TYPEサービス属性設定をTRANSACTIONのフェイルオーバーに使用します。 OCIは、SELECTSESSIONの以前の設定を使用します。 サーバーでは、TRANSACTIONの設定として、FAILOVER_METHOD = BASICのみが許容されます。

failover_restore

アプリケーション・コンティニュイティの場合、failover_restoreを設定すると、ODP.NETおよびJavaではリプレイ前にセッション状態がリストアされます。 アプリケーション・コンティニュイティを使用するODP.NETおよびJavaにはLEVEL1を使用して初期状態をリストアします。

AC OCIの場合、STATICではないアプリケーションにはNONEを使用します。

failover_retries

アプリケーション・コンティニュイティとTAFが接続を再試行する回数です。 failover_retriesおよびfailover_delayパラメータを使用すると、次にサービスが使用可能になるまでフェイルオーバーを遅延させることができます。 このパラメータは、接続を対象としています。 フェイルオーバー数は制御できません。アプリケーション・コンティニュイティの場合、この数はインシデントごとに3回です。

failover_type

アプリケーション・コンティニュイティとTAFに使用するサービスのフェイルオーバーTYPEです。

goal

サービスのワークロード管理目標ディレクティブ。 有効な値は次のとおりです。

  • DBMS_SERVICE.GOAL_SERVICE_TIME

  • DBMS_SERVICE.GOAL_THROUGHPUT

  • DBMS_SERVICE.GOAL_NONE

replay_initiation_timeout

アプリケーション・コンティニュイティの場合、replay_initiation_timeoutは、要求の最初の操作を実行してから、再接続が成功し、リプレイを開始する準備が整うまでの時間を表します。 リプレイ開始時間は、要求が最初に送信されてから、リプレイが接続され、それを開始する準備が整うまでの時間を計測したものです。 リプレイが予期される場合は、大きな値を設定します。 デフォルトは900秒です。

reset_state

Oracle Databaseによってリクエスト間でセッション状態を自動的にクリアするために使用します。

retention_timeout

commit_outcomeと組み合せて使用すると、COMMIT_OUTCOMEを保持する時間(秒単位)を指定できます。 デフォルトは24時間(86400)です。 最大値は30日(2592000)です。

session_state_consistency

リクエスト中に非トランザクションがどのように変化するかを示します。 このパラメータが考慮されるのは、アプリケーション・コンティニュイティのfailover_typeTRANSACTIONに設定された場合のみです。 セッション状態の例としては、NLS設定、オプティマイザのプリファレンス、イベントの設定、PL/SQLグローバル変数、一時表、アドバンスト・キュー、LOBおよび結果キャッシュがあります。 要求が開始された後にこれらの値が変化する場合は、DYNAMIC(デフォルト)に設定します。 ほぼすべてのアプリケーションでは、DYNAMICモードを使用する必要があります。 確信がない場合は、DYNAMICモードを使用します。

sql_translation_profile

SQL翻訳プロファイルの名前。

stop_option

サービスの停止オプション。

template_timeout

テンプレートのタイムアウト時間(秒)。

true_cache_service プライマリ・サービスに登録されているTrue Cacheサービスの名前。

   DECLARE
   params dbms_app_cont_admin.svc_parameter_array;
   BEGIN
      params('FAILOVER_TYPE')             :='TRANSACTION';
      params('FAILOVER_RESTORE')          :='LEVEL2';
      params('RESET_STATE')               :='NONE';
      params('SESSION_STATE_CONSISTENCY') :='DYNAMIC';
      DBMS_APP_CONT_ADMIN.MODIFY_SERVICE('ernie.example.com', params);
   END;

RESET_REPLAY_RULESプロシージャ

このプロシージャは、指定されたサービスまたは現在のサービスのリプレイ・ルールをリセットします。

ノート:

  • ACサービスをリセットするとき( FAILOVER_TYPE = TRANSACTION)、ターゲットが指定されていない場合、すべてのターゲットがリプレイ可能になります。つまり、すべての副作用をリプレイできます(デフォルト)。
  • TACサービスをリセットするとき( FAILOVER_TYPE = AUTO)は、ターゲットが指定されていない場合、すべてのターゲットがリプレイ不可になります。つまり、いかなる副作用もリプレイできません(デフォルト)。

構文

DBMS_APP_CONT_ADMIN.RESET_REPLAY_RULES (
 service_name  IN  VARCHAR2        DEFAULT NULL
 targets       IN  BINARY_INTEGER  DEFAULT NULL);

パラメータ

表22-24 RESET_REPLAY_RULESプロシージャのパラメータ

パラメータ 説明

service_name

オプションのサービス名修飾子。 オプションのSERVICE_NAME修飾子が指定されていない場合、現在のサービスに対してリプレイ・ルールがリセットされます。

targets

リプレイ・ルールのターゲット。 使用可能な値は次のとおりです。
  • dbms_app_cont_admin.side_effects
  • dbms_app_cont_admin.autonomous_transactions
  • dbms_app_cont_admin.database_links
複数のターゲットが必要な場合は、個々のターゲットのbit orとして渡します: dbms_app_cont.side_effects + dbms_app_cont.autonomous_transactions

SET_DRAININGプロシージャ

このプロシージャでは、タイムアウト値や停止オプションなど、サービスの排出オプションを構成します。

構文

DBMS_APP_CONT_ADMIN.SET_DRAINING (
   service_name  IN VARCHAR2,
   drain_timeout IN BINARY_INTEGER DEFAULT 300
   stop_option   IN VARCHAR2       DEFAULT 'NONE');

パラメータ

表22-25 SET_DRAININGプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、そのサービスに対してのみ排出が設定されます。

DRAIN_TIMEOUT

リソースの排出が完了するまでの許容時間を秒数で指定します。 有効な値は、空の文字列("")、0、または正の整数です。

STOP_OPTION

サービスを停止する方法を指定します。 使用可能なオプションは、NONEIMMEDIATEまたはTRANSACTIONALです。

次の例は、サービスの排出オプションを設定する方法を示しています:
SQL> execute dbms_app_cont_admin.set_draining('TPURGENT', 300, 'IMMEDIATE');

SET_LOAD_BALANCINGプロシージャ

このプロシージャでは、サービスのロード・バランシング・オプションを構成します。

構文

DBMS_APP_CONT_ADMIN.SET_LOAD_BALANCING (
   service_name IN VARCHAR2,
   goal         IN VARCHAR2);

パラメータ

表22-26 SET_LOAD_BALANCINGプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

オプションのサービス名修飾子。 オプションのサービス名修飾子が指定されている場合は、指定されたサービスに対してのみロード・バランシングが設定されます。

GOAL
ロード・バランシングの目標。 使用可能な値は次のとおりです。
  • CLBGOAL- 接続ロード・バランシングの目標。
  • RLBGOAL-ランタイム・ロード・バランシングの目標。

次の例は、サービスのロード・バランシングの目標を設定する方法を示しています:
SQL> execute dbms_app_cont_admin.set_load_balancing('TPURGENT', 'CLBGOAL');

SET_REPLAY_RULESプロシージャ

このプロシージャは、指定されたサービスまたは現在のサービスのリプレイ・ルールを設定します。

リプレイ・ルールは、アプリケーション・コンティニュイティによって、副作用をリプレイできるかどうかを決定するために使用されます。

構文

DBMS_APP_CONT_ADMIN.SET_REPLAY_RULES (
 service_name  IN  VARCHAR2        DEFAULT NULL
 replayable    IN  BOOLEAN, 
 targets       IN  BINARY_INTEGER);

パラメータ

表22-27 SET_REPLAY_RULESプロシージャのパラメータ

パラメータ 説明

service_name

オプションのサービス名修飾子。 オプションのSERVICE_NAME修飾子が指定されていない場合、現在のサービスに対してリプレイ・ルールが設定されます。

replayable

ルールがリプレイ可能かどうかに応じて、TRUE またはFALSE

targets

このルールが適用されるターゲットの効果。 使用可能な値は次のとおりです。
  • dbms_app_cont_admin.side_effects
  • dbms_app_cont_admin.autonomous_transactions
  • dbms_app_cont_admin.database_links
複数のターゲットが必要な場合は、個々のターゲットのbit orとして渡します: dbms_app_cont.side_effects + dbms_app_cont.autonomous_transactions