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_end

このストアド・プロシージャを使用して、同期が完了する直前にカスタム・アクションを追加します。

#hook_dict テーブルのロー

名前

説明

restart (out)

sync | download | none

sync に設定すると、dbmlsync は完了した同期のリトライを行います。true も同じですが、廃止され、値 sync に置き換えられました。

none (デフォルト) に設定すると、dbmlsync はコマンド・ライン引数の指定に従って、停止するか、または再起動します。false も同じですが、廃止され、値 none に置き換えられました。

download に設定した場合、restartable download パラメータが true であると、dbmlsync は失敗したダウンロードを再起動します。

exit code (in)

数値

0 (デフォルト) 以外の値が設定された場合は、同期エラーを表します。

publication_n (in)

パブリケーション名

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

MobiLink user (in)

Mobile Link ユーザ名

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

upload status (in)

not sent | committed | failed

dbmlsync がアップロードの受信確認を行おうとしたときに、Mobile Link サーバから返されるステータスを指定します。次のいずれかのステータスになります。

  • not sent - エラーが原因で、または要求された同期で不要だったので、アップグレードは Mobile Link サーバに送信されませんでした。これは、ダウンロード専用の同期、再起動したダウンロード、ファイルベースのダウンロードなどで発生します。
  • committed - Mobile Link サーバがアップロードを受信し、コミットしました。
  • failed - Mobile Link サーバは、アップロードをコミットしませんでした。トランザクション単位のアップロードについては、すべてではないものの、一部のトランザクションが、サーバによって正しくアップロードされ、受信確認されたときは、アップロード・ステータスは 'failed' になります。

script version (in)

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

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

restartable download (in) true|false

true の場合、現在の同期のダウンロードが失敗しており、再起動できます。false の場合、ダウンロードが正常に行われたか、再起動できません。

restartable download size (in) 整数

restartable download パラメータが true である場合、このパラメータはダウンロードが失敗する前に受信したバイト数を示します。restartable download が false の場合、このパラメータの値は無効です。

error hook user state (in) 整数

この値にはエラーについての情報が含まれ、フック sp_hook_dbmlsync_all_error、sp_hook_dbmlsync_communication_error、sp_hook_dbmlsync_misc_error、または sp_hook_dbmlsync_sql_error から送信できます

備考

この名前のプロシージャが存在する場合、各同期の最後に呼び出されます。

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

再起動パラメータを常に sync に設定するように sp_hook_dbmlsync_end フックが定義されており、ユーザが dbmlsync のコマンド・ラインで -n pub1, -n pub2, ... といった形式で複数のパブリケーションを指定している場合、dbmlsync は最初のパブリケーションを繰り返し同期し、2 番目のパブリケーションを同期しません。

参照

次の例では、現在の同期のダウンロードが失敗して再起動が可能な場合、ダウンロードは手動で再起動されます。

CREATE PROCEDURE sp_hook_dbmlsync_end()
BEGIN
  -- Restart the download if the download for the current sync
  --  failed and can be restarted  
  IF EXISTS (SELECT * FROM #hook_dict
    WHERE name = 'restartable download' AND value='true')
      THEN
   UPDATE #hook_dict SET value ='download' WHERE name='restart';
  END IF;
END;