トリガーについて

トリガーは、指定された条件が発生したときに実行される特定のシステム アクティビティを開始するリソースです。トリガーは、JMS イベント、システム イベント、タイマー イベント、またはユーザー定義イベントを使用して、次のような特定のシステム アクションを開始します。

プロシジャの実行
統計の収集
データ ソースの再イントロスペクト
メールの送信

トリガーは、定期的に実行されるようにスケジュールすることも、指定した条件に基づいて発生させることもできます。トリガー条件を指定すると、ユーザーの操作を必要とせずにアクションを実行できます。トリガーを作成すると、Studio のリソース ツリーにそのトリガーが表示されます。

トリガーには次の利点があります。

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

リクエストが非アクティブになると生成されます。リクエストは、構成可能な分数を超えて受信または送信バイトの変更がない場合に非アクティブと見なされます。非アクティブ期間の値は、[リクエストの非アクティブ時間] を使用して構成できるサーバー構成パラメーターです。デフォルトでは、非アクティブ時間の設定はありません。

RequestRunForTooLong

次の場合に生成されます。

[すべてのイベントを有効にする] が true に設定されている場合。
リクエスト実行時間が有効になっている場合。

RequestsSpike

リクエストが所定の数を超えたときに生成されます。

ResourceLock

リソースにリソース ロックが設定されると生成され、1 人のユーザーしかロックされたセットを変更できなくなります。

ResourceUnlock

リソースのロックが解除されると生成され、十分な権利と権限を持つすべてのユーザーがリソースを編集できるようになります。

ServerStart

TDV が起動すると、イベントが生成されます。

ServerStop

TDV が停止すると、イベントが生成されます。

StatisticsGatheringFailure

データ ソースの統計情報を収集する試みが失敗すると、イベントが生成されます。

TransactionFailure

トランザクションが失敗すると、イベントが生成されます。

UserLogin

ユーザーが TDV にログインすると、イベントが生成されます。

TableCreate

DDL を使用してテーブルを作成すると、イベントが生成されます。

システム イベントに基づいてトリガーを作成しても、無効なイベントは有効になりません。すべてのシステム イベントはデフォルトで有効になっていますが、無効になっている場合は、サーバー構成を手動で変更して有効にする必要があります。詳細については、『TDV 管理ガイド』を参照してください。

トリガーでは、無効になっているデータ ソースを有効にすることはできません。

タイマー イベント - 定期的な時間指定トリガー イベントをスケジュールできます。開始時刻を設定できるアクションは、プロシージャの実行、クエリ処理のためのデータ ソースからの関連データの収集、データ ソースの再イントロスペクト、プロシージャ/ビューの実行結果を含む電子メールの送信です。

タイマー イベントを設定するには、開始時刻を定義し、オプションで毎日または周期的アクティビティーの期間または時間枠を指定し、必要な周期性を取得するためのトリガー更新の頻度を設定します。トリガーは、将来動作を開始し、事前に定義したアクティビティー期間の後に終了するように設定できます。

オプションで、繰り返し制限を指定できます。繰り返しの制限が有効になっている場合、トリガーは、次のルールに従って、開始時刻と終了時刻で指定された時間枠内で、選択された曜日にのみ起動されます。

開始時刻と終了時刻が同じ場合、時間制限は適用されません。
終了時刻が開始時刻よりも大きい場合、トリガーは、開始時刻 (含む) で始まり終了時刻 (含む) で終わる時間枠内でのみ起動するように制限されます。
終了時刻が開始時刻より前の場合、トリガーは、終了時刻 (含む) から開始し、翌日の 開始時刻 (含む) で終了する時間枠内でのみ起動するように制限されます。
ユーザー定義イベント - /lib/util/ で利用可能な GenerateEvent という名前の組み込みプロシージャを利用します。このプロシージャは、ユーザー定義のイベントをトリガー システムに挿入するためにいつでも呼び出すことができます。この機能を使用して、進行中のプロシージャが GenerateEvent を呼び出して、必要なアクションを非同期でトリガーできるようにすることができます。

各条件タイプのオプションの詳細については、「条件ペイン」を参照してください。

トリガーのアクション タイプ

プロシージャの実行、データ ソースの統計の収集、データ ソースの再イントロスペクト、および電子メールの送信は、特定の条件でトリガーできる トリガー アクション タイプです。

プロシージャの実行 - 通知を送信せずに実行するプロシージャを指定できます。
出力カーソルの排出 - プロシージャが PIPE カーソルを含む SQL スクリプトであり、トリガーの実行を完了するためにパイプを完全に実行してすべての行をロードする必要がある場合 (たとえば、結果セット) このボックスをチェックすると、すべての行がバッファリングされて読み取られるまでトリガーが待機してから完了します。これをオフのままにしておくと、パイプのバッファリング中にトリガーが返され、パイプのバッファリングが切断されます。
統計の収集 - データ統計を収集するデータ ソースを指定できます。
データ ソースの再イントロスペクト - 再イントロスペクトするデータ ソースを指定できます。
電子メールの送信 - 実行するプロシージャまたはビューを指定し、指定した 1 人以上の受信者に電子メールで結果を送信できます。

各条件タイプのオプションの詳細については、「アクション ペイン」を参照してください。