ユーザーガイド > トリガー > ユーザー定義イベントトリガーの作成
 
ユーザー定義イベントトリガーの作成
ユーザー定義イベントトリガーを作成する場合は、まず、トリガーアクションの条件として機能できるユーザー定義イベントを作成する必要があります。次に、ユーザー定義イベントトリガーを作成します。最後に、トリガーをテストします。
トリガーは他のTDVリソースと同様に作成されますが、公開することはできません。
ユーザー定義イベントは、組み込みプロシージャのGenerateEvent (/lib/util/にあります)がイベント名と値を引数として呼び出されたときに生成されます。
ユーザー定義イベントトリガーは、クラスターごとに1回実行されます。タイマーベースのトリガーは、クラスター対応として指定でき、ユーザー定義イベントが生成されるすべてのクラスターノードで起動します。
ユーザー定義のイベントを作成するには
1.次の例のように、GenerateEventを呼び出すCallsGenerateEventという名前のSQLスクリプトプロシージャを作成します。
PROCEDURE CallsGenerateEvent()
BEGIN
CALL GenerateEvent('runAReport', ' ');
END
 
このプロシージャはGenerateEventを呼び出し、GenerateEventはrunAReportという名前のカスタムイベントを作成します。このプロシージャが実行されるたびに、GenerateEventはrunAReportという名前のカスタムイベントをトリガーシステムに挿入します。カスタムイベントは、ユーザー定義のイベントトリガーの[Condition(条件)]セクションでユーザー定義のイベント名として指定できます。
ユーザー定義のイベントトリガーを作成するには
1.リソースツリーで新しいリソースを追加できる場所を右クリックし、[New Trigger(新しいトリガー)]を選択します。
2.[Input(入力)]ウィンドウで、トリガーの名前を入力し、[OK]をクリックします。
3.右側に表示されるトリガーエディターで、[Enable Trigger(トリガーを有効にする)]チェックボックスをオンにしてトリガーを有効にします。
4.[Condition Type(条件タイプ)]セクションのドロップダウンリストで[User Defined Event(ユーザー定義イベント)]を選択します。
5.[User Defined Event Name(ユーザー定義イベント名)]フィールドに、イベントの名前を入力します。
run*などの正規表現を使用して、複数の類似したユーザー定義イベント名に一致させることができます。この例では、runAReportという名前を入力します。
6.[Action Type(アクションタイプ)]で、ドロップダウンリストからトリガーするアクションのタイプを選択します。
7.[Action(アクション)]セクションで、アクションタイプのオプションを入力します。オプションについては、「[Action(アクション)]ペイン」セクションを参照してください。
プロシージャがPIPEカーソルを含むSQLスクリプトである場合は、[Exhaust output cursors(出力カーソルを空にする)]を選択します。
たとえば、電子メール通知を送信する場合は、必要に応じて、通知を受信する受信者の電子メールアドレスを入力して確認します。アドレスフィールドに、電子メールアドレスのリストを、それぞれのアドレスをカンマ(,)またはセミコロン(;)で区切って指定できます。[Info(情報)]タブをクリックします。[Maximum Number In Queue(キュー内の最大数)]フィールドを、繰り返し制限によってトリガーの起動が妨げられている間に複数の期間が経過した場合に、このトリガーが起動される最大回数に指定します。ほとんどのトリガーは、次に使用可能なアクティブな動作時間枠のときに1回だけ起動しますが、繰り返し制限が次に開始されたときに複数のトリガーアクションが起動される場合があります。この数を負にすることはできません。
8.トリガーを保存します。
[Save(保存)]オプションが有効になっていない場合は、[File(ファイル)] > [Refresh All(すべて更新)]を選択してリソースを更新し、[Save(保存)]オプションを有効にします。
ユーザー定義のイベントトリガーをテストするには
ユーザー定義イベントトリガーの作成」の説明に従って作成したCallsGenerateEventプロシージャを実行します。