ユーザーガイド > トリガー > トリガーについて
 
トリガーについて
トリガーとは、指定された条件が発生したときに実行される特定のシステムアクティビティーを開始するリソースのことです。トリガーは、JMSイベント、システムイベント、タイマーイベント、またはユーザー定義イベントを使用して、次のような特定のシステムアクションを開始します。
プロシージャの実行
統計情報の収集
データソースの再イントロスペクト
電子メールの送信
トリガーは、定期的に実行されるようにスケジュールすることも、指定した条件に基づいて発生させることもできます。トリガー条件を指定すると、ユーザーの操作を必要とせずにアクションを実行できます。トリガーを作成すると、Studioのリソースツリーにそのトリガーが表示されます。
トリガーには次の利点があります。
1人のユーザーが1つのリソースに対して(個別のトリガーを使用して)複数のスケジュールを設定できる
適切な権限を持つ多数のユーザーが1つのリソースに対して同じスケジュールを共有できる
ユーザーが独自のイベントを定義し、複数のアクションを非同期でトリガーできる
要求の失敗やデータソースのステータスなどのシステムイベントに応じてタスクやアクションをトリガーできる
通知を送信せずにプロシージャを実行できる
ビューとプロシージャを実行し、結果を1人以上の受信者に送信できる
トリガーの条件タイプ
このセクションでは、Studioでサポートされるトリガーの条件タイプであるJMSイベント、システムイベント、タイマーイベント、およびユーザー定義イベントについて説明します。
JMSイベント — 指定されたキューまたはトピック接続でのJMSメッセージの受信に基づいてアクションを起動できるようにします。トリガーの起動条件は、SQL条件構文を使用して指定した特定のセレクタープロパティと一致することです。
システムイベント — システムで生成されたイベントに基づいてアクションを実行できるようにします。ユーザータスクはそのようなイベントをリッスンできます。GetEnvironmentとSetEnvironmentの2つのAPIが/lib/util/に用意されており、システム生成イベントをリッスンするためにいつでも呼び出すことができます。
トリガーの条件タイプとしてシステムイベントを指定すると、使用可能なすべてのイベントの動的リストが表示され、そのリストからイベントを選択できます。次のシステムイベントをトリガーに使用できます。
システムイベント
トリガーまたは生成されたとき
CacheRefreshFailure
キャッシュの更新に失敗したときにトリガーされます。
CacheRefreshSuccess
キャッシュの更新が正常に実行されるとトリガーされます。
ClusterServerConnected
クラスターノードが接続されたときに生成されます。
ClusterServerDisconnected
クラスターノードが切断されたときに生成されます。
ClusterServerShunned
クラスターノードがハートビート信号をクラスタータイムキーパーに送信できず、クラスターから疎外(一時的に除外)された場合に生成されます。
DataSourceDown
データソース接続が失われたときに生成されます。データソース接続は、次のいずれかの場合にテストされます。
Studioの再起動によってすべてのデータソースがテストされる
新しいデータソース、構成、および接続
リソースの実行によって接続ステータスがチェックされる
トランザクションのコミット/ロールバック
ダウンステータスになっているデータソースの報告では、そのデータソースが以前にダウンしていると報告されたかどうかに関係なく、必ずイベントが生成されます。
DataSourceUp
データソース接続が再確立されたときに生成されます。データソース接続は、次のいずれかの場合にテストされます。
Studioの再起動によってすべてのデータソースがテストされる
新しいデータソース、構成、および接続
リソースの実行によって接続ステータスがチェックされる
トランザクションのコミット/ロールバック
データソースアップイベントは、データソースが最初に接続されたとき、またはステータスがダウンからアップに変化したときにのみ生成されます。
ErrorsSpike
エラーが所定の数を超えたときに生成されます。
FailedLoginSpike
10分間にサインイン試行が10回失敗すると、FailedLoginSpikeイベントが生成されます。
MetricRestoreFailure
メトリックの復元を試みたものの、失敗したときに生成されます。
MetricsBackupFailure
メトリックのバックアップが失敗したときに生成されます。
MetricsPersistentFailure
メトリックデータを永続化できない場合に生成されます。
MetricsTruncationFailure
メトリックデータの切り捨てが失敗したときに生成されます。
RequestFailure
リクエストが失敗したときに生成されます。
SOAP呼び出しまたはSQL実行が受け入れられず、例外またはエラーが発生すると、必ずこのイベントがログに記録されます。このイベントは、失敗したリクエストを閉じるときに生成されます。
RequestInactive
リクエストが非アクティブになると生成されます。リクエストは、構成可能な分数を超えて受信または送信バイトの変更がない場合に非アクティブと見なされます。非アクティブ期間の値は、[Request Inactive Time(リクエストの非アクティブ時間)]を使用して構成できるサーバー構成パラメーターです。デフォルトでは、非アクティブ時間の設定はありません。
RequestRunForTooLong
次の場合に生成されます。
[Enable All Events(すべてのイベントを有効にする)]がtrueに設定されている
[Request Run(リクエストランタイム)]が有効になっている
RequestsSpike
リクエストが所定の数を超えたときに生成されます。
ResourceLock
リソースにリソースロックが設定されると生成され、1人のユーザーしかロックされたセットを変更できなくなります。
ResourceUnlock
リソースのロックが解除されると生成され、十分な権限と特権を持つすべてのユーザーがリソースを編集できるようになります。
ServerStart
TDVが起動すると、イベントが生成されます。
ServerStop
TDVが停止すると、イベントが生成されます。
StatisticsGatheringFailure
データソースの統計情報を収集する試みが失敗すると、イベントが生成されます。
TransactionFailure
トランザクションが失敗すると、イベントが生成されます。
UserLogin
ユーザーがTDVにログインすると、イベントが生成されます。
TableCreate
DDLを使用してテーブルを作成すると、イベントが生成されます。
システムイベントに基づいてトリガーを作成しても、無効なイベントは有効になりません。すべてのシステムイベントはデフォルトで有効になっていますが、無効になっている場合は、サーバー構成を手動で変更して有効にする必要があります。詳細については、『TDV Administration Guide(TDV管理ガイド)』を参照してください。
トリガーでは、無効になっているデータソースを有効にすることはできません。
タイマーイベント — 定期的な時間指定トリガーイベントをスケジュールできます。開始時刻を指定できるアクションは、プロシージャの実行、クエリー処理のためのデータソースからの関連データの収集、データソースの再イントロスペクト、またはプロシージャ/ビューの実行結果の電子メールでの送信です。
タイマーイベントを設定するには、開始時刻を定義し、オプションで毎日または周期的アクティビティーの期間または時間枠を指定し、必要な周期性を取得するためのトリガー更新の頻度を設定します。トリガーは、将来動作を開始し、事前に定義したアクティビティー期間の後に終了するように設定できます。
必要に応じて、繰り返し制限を指定できます。繰り返し制限が有効になっている場合、トリガーは、次のルールに従って、選択された曜日と、開始時刻と終了時刻で指定された時間枠の間にのみ起動します。
開始時刻と終了時刻が同じ場合、時間制限は適用されません。
終了時刻が開始時刻よりも後の場合、トリガーは、開始時刻(その時刻を含む)から終了時刻(その時刻を含む)までの時間ウィンドウ内でのみ起動するように制限されます。
終了時刻が開始時刻よりも前の場合、トリガーは、終了時刻(その時刻を含む)から翌日の開始時刻(その時刻を含む)までの時間ウィンドウ内でのみ起動するように制限されます。
ユーザー定義イベント — /lib/util/にあるGenerateEventという名前の組み込みプロシージャを利用します。このプロシージャは、ユーザー定義のイベントをトリガーシステムに挿入するためにいつでも呼び出すことができます。この機能を使用すると、進行中のプロシージャでGenerateEventを呼び出し、必要なアクションを非同期でトリガーできます。
各条件タイプのオプションの詳細については、「[Condition(条件)]ペイン」を参照してください。
トリガーのアクションタイプ
プロシージャの実行、データソースの統計情報の収集、データソースの再イントロスペクション、および電子メールの送信は、特定の条件でトリガーできるトリガーアクションタイプです。
プロシージャの実行 — 通知を送信せずに実行するプロシージャを指定できます。
[Exhaust output cursors(出力カーソルを空にする)] — プロシージャがPIPEカーソルを含むSQLスクリプトで、パイプがトリガーの実行を完了するためにすべての行を完全に実行してロードする必要がある場合(たとえば、結果セットを電子メールで送信する場合)、このボックスをオンにすると、トリガーが完了前にすべての行がバッファリングされ、読み取られるまで待機するように強制できます。これをオフのままにすると、パイプのバッファリング中にトリガーが戻り、パイプのバッファリングが切断されます。
Gather Statistics(統計情報の収集) — データ統計情報を収集するデータソースを指定できます。
Reintrospect Data Source(データソースの再イントロスペクト) — 再イントロスペクトするデータソースを指定できます。
電子メールの送信 — 実行するプロシージャまたはビューを指定し、指定した1人以上の受信者に結果を電子メールで送信できます。
各条件タイプのオプションの詳細については、「[Action(アクション)]ペイン」を参照してください。