Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - データベース管理 » データベースの保守 » スケジュールとイベントの使用によるタスクの自動化 » スケジュールとイベントの内部

 

イベント・ハンドラの実行

イベント・ハンドラがトリガされると、一時的に内部接続が確立され、その上でイベント・ハンドラが実行されます。ハンドラは、そのハンドラがトリガされるに至った接続で実行されるわけではありません。このため、クライアント・アプリケーションとの対話に使用される MESSAGE ... TO CLIENT などの文は、イベント・ハンドラ内では意味を持ちません。同様に、結果セットを返す文は使用できません。

ハンドラが実行される一時的な接続は、ライセンス契約の接続制限には数えられません。login_procedure に指定したプロシージャはイベント接続では実行されません。

イベントの作成には DBA 権限が必要です。また、イベントは作成者のパーミッションで実行されます。DBA 権限を持たないでイベント・ハンドラを実行する場合、作成者のパーミッションで実行されるストアド・プロシージャのように、ハンドラ内からプロシージャを呼び出すことができます。

イベント・エラーが発生すると、データベース・サーバ・メッセージ・ログに記録されます。

イベント・ハンドラとエラー

イベント・ハンドラ内のトランザクションは、実行中にエラーが検出されなかった場合はコミットされ、エラーが検出された場合はロールバックされます。

アトミックな複合文でエラーが発生し、その文に発生したエラーを処理する例外ハンドラがある場合は、その文で行われた変更は未処理のままとなります。例外ハンドラが発生したエラーを処理しない場合、または別のエラー (RESIGNAL によるエラーを含む) を発生させた場合は、そのアトミックな複合文で行われた変更は取り消されます。