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 クライアントのイベント・フック

 

sp_hook_dbmlsync_download_com_error (旧式)

Mobile Link サーバによって送信されたダウンロードの読み込み中に通信エラーが発生した場合は、このストアド・プロシージャを使用してカスタム・アクションを追加します。

このフックは使用されなくなりました。イベント・フック・プロシージャ内でのエラーと警告の処理を参照してください。

#hook_dict テーブルのロー

名前

説明

table name (in)

テーブル名

エラーの発生時に操作中だったテーブル。dbmlsync がテーブルを識別できない場合、値は空の文字列になります。

publication_n (in)

パブリケーション名

同期されているパブリケーション (n は整数)。アップロードされるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。

MobiLink user (in)

Mobile Link ユーザ名

同期対象となる Mobile Link ユーザ。

script version (in)

スクリプト・バージョン名

同期に使用される Mobile Link スクリプト・バージョン。

備考

この名前のプロシージャが存在する場合、同期のダウンロード・フェーズ中に通信エラーが検出されると呼び出されます。その場合、ダウンロードは終了します。

このプロシージャは別個の接続で実行されるため、障害のログを取ることができます。それ以外の場合、ログのアクションは同期アクションとともにロールバックされます。dbmlsync が別個の接続を確立できないと、プロシージャは呼び出されません。

Windows Mobile デバイスのデフォルトでは、同期テーブルは排他モードでロックされます。このため、同期テーブルへのアクセスが必要な場合、このフックは正常に実行されません。また、このフックは、同期テーブルへのアクセスが必要で、ユーザが dbmlsync 拡張オプション LockTables を EXCLUSIVE に設定している場合にも実行できません。LockTables (lt) 拡張オプションを参照してください。

このプロシージャのアクションは、実行直後にコミットされます。

参照

次のテーブルを使用して、通信エラーのログを取るとします。

CREATE TABLE SyncLogComErrorTable
(
   " user_name "  VARCHAR(255) NOT NULL ,
   " event_time "   TIMESTAMP NOT NULL ,
);

次に、Mobile Link サーバによって送信されたダウンロードを読み込み中に通信エラーが発生した場合に、Mobile Link ユーザと現在のタイム・スタンプのログを取る例を示します。この情報は、リモート・データベースの SyncLogComErrorTable テーブルに格納されます。

CREATE PROCEDURE sp_hook_dbmlsync_download_com_error ()
BEGIN
 INSERT INTO SyncLogComErrorTable (user_name, event_time)
  SELECT #hook_dict.value, CURRENT TIMESTAMP
  FROM #hook_dict
  WHERE name = 'MobiLink user';
END;