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

SQL Anywhere 11.0.1 (日本語) » Mobile Link - クライアント管理 » Mobile Link 用 SQL Anywhere クライアント » SQL Anywhere クライアントのイベント・フック » dbmlsync のフックの概要 » イベント・フック・プロシージャの使用

 

イベント・フック・プロシージャ内でのエラーと警告の処理

イベント・フック・ストアド・プロシージャを作成すると、同期エラー、Mobile Link の接続障害、参照整合性違反を処理することができます。この項では、エラーや警告の処理に使用するイベント・フック・プロシージャについて説明します。実装された各プロシージャは、指定したタイプのエラーが発生するたびに自動的に実行されます。

参照整合性違反の処理

ダウンロード内のローがリモート・データベース上の外部キー関係に違反すると、参照整合性違反が発生します。次のイベント・フックを使用して参照整合性違反のログを取り、処理します。

Mobile Link 接続障害の処理

sp_hook_dbmlsync_ml_connect_failed イベント・フックを使用すると、Mobile Link サーバへの接続が失敗した場合に、異なる通信タイプまたはアドレスを使用してリトライすることができます。リトライしても接続が失敗した場合、dbmlsync は sp_hook_dbmlsync_communication_error と sp_hook_dbmlsync_all_error フックを呼び出します。

sp_hook_dbmlsync_ml_connect_failedを参照してください。

dbmlsync エラーの処理

dbmlsync エラー・メッセージが生成されるたびに、次のフックが呼び出されます。

  • まず、エラーのタイプに応じて、sp_hook_dbmlsync_communication_error、sp_hook_dbmlsync_misc_error、sp_hook_dbmlsync_sql_error のいずれかのフックが呼び出されます。これらのフックには、エラーのタイプに固有の情報が含まれています。たとえば、SQL エラーでは sqlcode と sqlstate が返されます。

  • 次に、sp_hook_dbmlsync_all_error が呼び出されます。このフックには、発生したすべてのエラーのログを取る場合に役立ちます。

次の項を参照してください。

エラーを受けて同期を再度開始するには、sp_hook_dbmlsync_end 内の user state パラメータを使用します。

sp_hook_dbmlsync_endを参照してください。

エラーの無視

イベント・フック・プロシージャ内でエラーが発生した場合、デフォルトでは同期は停止します。dbmlsync ユーティリティで -eh オプションを指定すると、イベント・フック・プロシージャ内でエラーが発生しても無視するように指定できます。

IgnoreHookErrors (eh) 拡張オプションを参照してください。