この項では、イベント・フック・プロシージャの設計と使用におけるいくつかの注意事項について説明します。
イベント・フック・プロシージャでは、COMMIT 操作も ROLLBACK 操作も実行しないでください。プロシージャは同期と同じ接続で実行されるので、COMMIT または ROLLBACK を実行すると同期が妨害されます。
接続設定は変更しないでください。フック内の接続設定を変更すると、予期しない結果になる場合があります。フック内の接続設定の変更が必要な場合は、フックに古い値を復元してから、フックを完了してください。
イベント・フック接続は、ストアド・プロシージャを、所有者で識別せずに呼び出します。したがって、ストアド・プロシージャは、dbmlsync 接続で使用されるユーザ名 (通常は、REMOTE DBA 権限を持つユーザ)、または dbmlsync ユーザがメンバであるグループの ID のどちらかで所有されなければなりません。
リモート・データベースは、各フックのインスタンスを 1 つだけ持ちます。所有者が異なるフックのインスタンスは、複数作成しないでください。
フック・プロシージャは DBA 権限を持つユーザが作成してください。
*_begin フックが正常に実行されると、*_begin フックの後にどのようなエラーが発生しても、対応する *_end フックが呼び出されます。*_end フックが定義されていても、*_begin フックが定義されていない場合は、通常 *_begin フックが呼び出される時点より前にエラーが発生しないかぎり、*_end フックが呼び出されます。
#hook_dict テーブル
イベント・フック・プロシージャ用の接続
イベント・フック・プロシージャ内でのエラーと警告の処理
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |