プライマリ・コンテンツに移動
Oracle® Database Testingガイド
12cリリース1 (12.1)
B71349-07
目次へ移動
目次
索引へ移動
索引

前
次

12.6.6 リプレイのタイムアウト・アクションの設定

この項では、ワークロード・リプレイのタイムアウト・アクションを設定する方法について説明します。リプレイのタイムアウト・アクションを設定すると、リプレイ時の極端に遅いユーザー・コールや、リプレイがハングする原因となるユーザー・コールを中断できます。リプレイのタイムアウト・アクションの設定が必要になるのは、たとえば、データベースのアップグレードの後で、最適でない実行計画によって生じるメモリー集中型問合せを中断するような場合です。

リプレイのタイムアウト・アクションが有効な場合、リプレイ・タイムアウト・アクションで指定された条件を超えてユーザー・コールが遅延すると、ORA-15569エラーでユーザー・コールが終了します。中断されたコールとそのエラーは、エラーの相違として報告されます。

リプレイ・タイムアウトを設定するには、次の手順に従います。

  • SET_REPLAY_TIMEOUTプロシージャを使用します。

    BEGIN
      DBMS_WORKLOAD_REPLAY.SET_REPLAY_TIMEOUT (
                               enabled => TRUE,
                               min_delay => 20,
                               max_delay => 60,
                               delay_factor => 10);
    END;
    /
    

    この例のSET_REPLAY_TIMEOUTプロシージャで定義されるリプレイ・タイムアウト・アクションでは、リプレイ時の遅延が60分を超えるか、リプレイ時の遅延が20分を超えかつその経過時間が取得経過時間の10倍より大きいと、ユーザー・コールが中断されます。

    この例のSET_REPLAY_TIMEOUTプロシージャでは、次のパラメータを使用します。

    • enabled: リプレイのタイムアウト・アクションが有効か無効かを指定するパラメータ。デフォルト値はTRUEです。

    • min_delay: コールの遅延の下限を分単位で定義するパラメータ。リプレイのタイムアウト・アクションは、遅延がこの値を超えた場合にのみ実行されます。デフォルト値は10です。

    • max_delay: コールの遅延の上限を分単位で定義するパラメータ。遅延がこの値を超えると、リプレイのタイムアウト・アクションが実行され、エラーが発行されます。デフォルト値は120です。

    • delay_factor: min_delaymax_delayの間のコール遅延について、その係数を定義するパラメータ。現在のリプレイの経過時間が、取得の経過時間とこの値を掛けた値より大きい場合、リプレイのタイムアウト・アクションがエラーを発行します。デフォルト値は8です。

リプレイ・タイムアウト・アクションを取得するには、次の手順に従います。

  • GET_REPLAY_TIMEOUTプロシージャを使用します。

    DECLARE
      enabled        BOOLEAN;
      min_delay      NUMBER;
      max_delay      NUMBER;
      delay_factor   NUMBER;
    BEGIN
      DBMS_WORKLOAD_REPLAY.GET_REPLAY_TIMEOUT(enabled, min_delay, max_delay,
                               delay_factor);
    END;
    /
    

    この例のGET_REPLAY_TIMEOUTプロシージャは、次のパラメータを返します。

    • enabled: リプレイのタイムアウト・アクションが有効か無効かを返すパラメータ。

    • min_delay: コールの遅延の下限を分単位で返すパラメータ。

    • max_delay: コールの遅延の上限を分単位で返すパラメータ。

    • delay_factor: 遅延係数を返すパラメータ。