システム イベント トリガーの作成

トリガー アクションの条件として設定できるシステム イベントは多数あります。/lib/util/に用意されている API (GetEnvironment および SetEnvironment) は、システム生成イベントをリッスンするためにいつでも呼び出すことができます。

このステップでは、サンプル プロシージャとシステム イベント トリガーを作成してから、トリガーをテストする方法について説明します。

GetEnvironment を呼び出すサンプル プロシージャを作成するには

1. Studio 内で、次のように CallsGetEnvironment という名前のサンプル SQL スクリプト プロシージャを作成します。
PROCEDURE CallsGetEnvironment () 
    BEGIN
        DECLARE tpath VARCHAR(4096);
        DECLARE tname VARCHAR(4096);
        DECLARE ttype VARCHAR(4096);
        DECLARE tvalue VARCHAR(4096);
        DECLARE result VARCHAR(4096);
		 CALL GetEnvironment('TRIGGER_PATH', tpath);
        CALL GetEnvironment('TRIGGER_EVENT_NAME', tname);
        CALL GetEnvironment('TRIGGER_EVENT_TYPE', ttype);
        CALL GetEnvironment('TRIGGER_EVENT_VALUE', tvalue);
        SET result = CASE 
            WHEN (ttype IS NULL) THEN 'NULL'
            ELSE ttype
        END||' trigger '||CASE 
            WHEN (tpath IS NULL) THEN 'NULL'
            ELSE tpath
        END||': '||CASE 
            WHEN (tname IS NULL) THEN 'NULL'
            ELSE tname
        END||' = '||CASE 
            WHEN (tvalue IS NULL) THEN 'NULL'
            ELSE tvalue
        END;
        CALL Log(result);
    END

このプロシージャがシステム イベントによって実行されると、結果がログに書き込まれます。

システム イベント トリガーを作成するには

  1. リソース ツリーで新しいリソースを追加できる場所を右クリックし、[新しいトリガー] を選択します。

  2. [入力] ウィンドウで、トリガーの名前を指定し、[OK] をクリックします。

  3. 右側に表示されるトリガー エディターで、[トリガーを有効にする] チェック ボックスをオンにして、トリガーを有効にします。

  4. [条件タイプ] セクションのドロップダウン リストから [システム イベント] を選択します。

  5. 右側の [システム イベント名] ドロップダウン リストからシステム イベントを選択します。

  6. [アクション タイプ] で、トリガーするアクションのタイプをドロップダウン リストから選択します。

フィールド

説明

プロシージャの実行

どのように機能するかを確認するには、[アクション] セクションで CallsGetEnvironment プロシージャへのパスを指定します。プロシージャが PIPE カーソルを含む SQL スクリプトである場合は、[出力カーソルを使い尽くす (Exhaust output cursors)] を選択します。

統計情報の収集

このフィールドがどのように機能するかを確認するには、スキャンするデータ ソースとして /shared/examples/ds_orders データ ソースを選択します。

データ ソースの再イントロスペクト

このフィールドがどのように機能するかを確認するには、再イントロスペクトするデータ ソースとして /shared/examples/ds_orders データ ソースを選択します。

電子メールの送信

このフィールドがどのように機能するかを確認するには、[アクション] セクションで CallsGetEnvironment プロシージャへのパスを指定します。

  1. アクション セクションで、アクション タイプのオプションを入力します。オプションについては、「トリガーのアクション タイプ」および「アクション ペイン」のセクションで説明されています。

たとえば、電子メール通知を送信する場合は、必要に応じて、通知を受信する受信者の電子メール アドレスを入力して確認します。アドレスフィールドに、電子メール アドレスのリストを、それぞれのアドレスをカンマ (,) またはセミコロン (;) で区切って指定できます。

  1. [情報] タブをクリックします。

  2. 繰り返しの制限によってトリガーが起動されない間に複数の期間が経過した場合に、このトリガーが起動される最大回数を [キュー内の最大数] フィールドに指定します。ほとんどのトリガーは、次に使用可能なアクティブなオペレーション ウィンドウのときに 1 回だけ起動する必要がありますが、次の繰り返し制限の開始時に複数のトリガー アクションを開始する必要がある場合があります。この数は負であってはなりません。

  3. トリガーを保存します。

[保存] オプションが有効になっていない場合は、[ファイル] > [すべてリフレッシュ] を選択してリソースを更新し、[保存] オプションを有効にします。

システム イベント トリガーをテストするには

  1. [条件] パネルで、システム イベント名として CacheRefreshFailure を選択します。

  2. [アクション タイプ] として [電子メールの送信] を選択します。

  3. [リソース パス] フィールドに CacheRefreshFailure へのパスを指定します。

  4. 壊れたビューのキャッシュを更新します。

指定したメール受信者が電子メール通知を受信し、プロシージャ CallsGetEnvironment へのパスを実行した結果がログに書き込まれます。