ユーザーガイド > トリガー > システムイベントトリガーの作成
 
システムイベントトリガーの作成
トリガーアクションの条件として設定できるシステムイベントは多数あります。/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.リソースツリーで新しいリソースを追加できる場所を右クリックし、[New Trigger(新しいトリガー)]を選択します。
2.[Input(入力)]ウィンドウで、トリガーの名前を入力し、[OK]をクリックします。
3.右側に表示されるトリガーエディターで、[Enable Trigger(トリガーを有効にする)]チェックボックスをオンにしてトリガーを有効にします。
4.[Condition Type(条件タイプ)]セクションのドロップダウンリストで[System Event(システムイベント)]を選択します。
5.右側の[System Event Name(システムイベント名)]ドロップダウンリストでシステムイベントを選択します。
6.[Action Type(アクションタイプ)]で、ドロップダウンリストからトリガーするアクションのタイプを選択します。
 
フィールド
説明
[Execute Procedure(プロシージャの実行)]
このフィールドがどのように機能するかを確認するには、[Action (アクション)]セクションでCallsGetEnvironmentプロシージャへのパスを指定します。プロシージャがPIPEカーソルを含むSQLスクリプトである場合は、[Exhaust output cursors(出力カーソルを空にする)]を選択します。
[Gather Statistics(統計情報の収集)]
このフィールドがどのように機能するかを確認するには、スキャンするデータソースとして/shared/examples/ds_ordersデータソースを選択します。
[Reintrospect Data Source(データソースの再イントロスペクト)]
このフィールドがどのように機能するかを確認するには、再イントロスペクトするデータソースとして/shared/examples/ds_ordersデータソースを選択します。
[Send E-mail(電子メールの送信)]
このフィールドがどのように機能するかを確認するには、[Action (アクション)]セクションでCallsGetEnvironmentプロシージャへのパスを指定します。
7.[Action(アクション)]セクションで、アクションタイプのオプションを入力します。オプションについては、「トリガーのアクションタイプ」と「[Action(アクション)]ペイン」のセクションを参照してください。
たとえば、電子メール通知を送信する場合は、必要に応じて、通知を受信する受信者の電子メールアドレスを入力して確認します。アドレスフィールドに、電子メールアドレスのリストを、それぞれのアドレスをカンマ(,)またはセミコロン(;)で区切って指定できます。
8.[Info(情報)]タブをクリックします。
9.[Maximum Number In Queue(キュー内の最大数)]フィールドを、繰り返し制限によってトリガーの起動が妨げられている間に複数の期間が経過した場合に、このトリガーが起動される最大回数に指定します。ほとんどのトリガーは、次に使用可能なアクティブな動作時間枠のときに1回だけ起動しますが、繰り返し制限が次に開始されたときに複数のトリガーアクションが起動される場合があります。この数を負にすることはできません。
10.トリガーを保存します。
[Save(保存)]オプションが有効になっていない場合は、[File(ファイル)] > [Refresh All(すべて更新)]を選択してリソースを更新し、[Save(保存)]オプションを有効にします。
システムイベントトリガーをテストするには
1.[Condition(条件)]パネルで、システムイベント名として「CacheRefreshFailure」を選択します。
2.[Action Type(アクションタイプ)]として[Send E-mail(電子メールの送信)]を選択します。
3.[Resource Path(リソースパス)]フィールドにCacheRefreshFailureへのパスを指定します。
4.壊れたビューのキャッシュを更新します。
指定したメール受信者が電子メール通知を受信し、プロシージャCallsGetEnvironmentへのパスを実行した結果がログに書き込まれます。