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

トリガーアクションの条件として設定できるシステムイベントは多数あります。/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. [アクション タイプ] で、トリガーするアクションのタイプをドロップダウン リストから選択します。

フィールド

説明

[Execute Procedure(プロシージャの実行)]

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

[Gather Statistics(統計情報の収集)]

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

[Reintrospect Data Source(データソースの再イントロスペクト)]

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

[Send E-mail(電子メールの送信)]

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

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

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

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

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

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

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

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

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

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

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

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

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