19 DBMS_APP_CONT_ADMIN

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

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

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

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

19.2 DBMS_APP_CONT_ADMINサブプログラムの要約

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

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

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

ADD_SQL_CONNECTION_TESTプロシージャ

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

DELETE_SQL_CONNECTION_TESTプロシージャ

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

DISABLE_CONNECTION_TESTプロシージャ

このプロシージャは、セッションの排出中に接続テストの使用を無効にします。
DISABLE_FAILOVERプロシージャ このプロシージャでは、特定のサービスのフェイルオーバーを無効にします。
ENABLE_ACプロシージャ このプロシージャは、特定のサービスのアプリケーション・コンティニュイティ(AC)を有効にします。
ENABLE_CONNECTION_TESTプロシージャ

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

ENABLE_TACプロシージャ このプロシージャでは、特定のサービスの透過的アプリケーション・コンティニュイティ(TAC)を有効にします。
ENABLE_TAFプロシージャ このプロシージャは、特定のサービスに対して透過的アプリケーション・フェイルオーバー(TAF)を有効にします。
ENABLE_TGプロシージャ このプロシージャは、特定のサービスに対してトランザクション・ガードを有効にします。
   
SET_DRAININGプロシージャ このプロシージャでは、タイムアウト値や停止オプションなど、サービスの排出オプションを構成します。
SET_LOAD_BALANCING_GOALプロシージャ このプロシージャでは、サービスのロード・バランシング・オプションを構成します。

19.2.1 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);

パラメータ

表19-2 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);

19.2.2 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);

パラメータ

表19-3 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);

    ノート:

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

19.2.3 ADD_SQL_CONNECTION_TESTプロシージャ

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

構文

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

パラメータ

表19-4 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レベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます。

19.2.4 DELETE_SQL_CONNECTION_TESTプロシージャ

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

構文

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

パラメータ

表19-5 DELETE_SQL_CONNECTION_TESTプロシージャのパラメータ

パラメータ 説明

CONNECTION_TEST

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

SERVICE_NAME

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

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

使用上のノート

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

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

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

19.2.5 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);

パラメータ

表19-6 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を問い合せます。

19.2.6 DISABLE_FAILOVERプロシージャ

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

構文

DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER (
    service_name IN VARCHAR2);

パラメータ

表19-7 DISABLE_FAILOVERプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

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

使用上のノート

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

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

19.2.7 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);

パラメータ

表19-8 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);

19.2.8 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);

パラメータ

表19-9 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

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レベル、またはマルチテナントでない場合はディクショナリ・レベルで実行するためにユーザーに付与されます。

19.2.9 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');

パラメータ

表19-10 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');

19.2.10 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');

パラメータ

表19-11 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`);

19.2.11 ENABLE_TGプロシージャ

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

構文

DBMS_APP_CONT_ADMIN.ENABLE_TG (
   service_name IN VARCHAR2);

パラメータ

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

パラメータ 説明

SERVICE_NAME

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

使用上のノート

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

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

19.2.12 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');

パラメータ

表19-13 SET_DRAININGプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

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

DRAIN_TIMEOUT

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

STOP_OPTION

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

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

19.2.13 SET_LOAD_BALANCING_GOALプロシージャ

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

構文

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

パラメータ

表19-14 SET_LOAD_BALANCINGプロシージャのパラメータ

パラメータ 説明

SERVICE_NAME

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

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

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