このストアド・プロシージャを使用して、終了コードを管理します。
名前 |
値 |
説明 |
---|---|---|
publication_n (in) |
パブリケーション名 |
同期されているパブリケーション (n は整数)。アップロードされるパブリケーションごとに 1 つの publication_n エントリがあります。n の番号は 0 から始まります。 |
MobiLink user (in) |
Mobile Link ユーザ名 |
同期対象となる Mobile Link ユーザ。 |
fatal error (in) |
true | false |
dbmlsync を終了させる原因となるエラーのためにこのフックが呼び出されるときは true。 |
aborted synchronization (in) |
true | false |
sp_hook_dbmlsync_abort フックからのアボート要求のためにこのフックが呼び出されるときは true。 |
exit code (in) |
数値 |
直近の同期試行からの終了コード。0 は同期が成功したことを示します。他の値は同期が失敗したことを示します。この値は、そのフックを使用して同期をアボートするとき、sp_hook_dbmlsync_abort によって設定できます。 |
last exit code (in) |
数値 |
最後にこのフックが呼び出されたときに #hook_dict テーブルの new exit code ローに格納される値、またはこれがフックへの最初の呼び出しの場合は 0。 |
new exit code (in|out) |
数値 |
そのプロセスに対して選択した終了コード。dbmlsync が終了するとき、dblmsync の exit code はそのフックへの最後の呼び出しによってこのローに格納される値です。この値は -32768 から 32767 になります。 |
script version (in) |
スクリプト・バージョン名 |
同期に使用される Mobile Link スクリプト・バージョン。 |
コマンド・ラインで -n オプションを複数回指定する場合、スケジューリングを使用する場合、および sp_hook_dbmlsync_end で restart パラメータを使用する場合、dbmlsync セッションは複数の同期を実行できます。これらの状況では、1 つ以上の同期が失敗すると、デフォルトの終了コードによってどれが失敗したのかが示されません。このフックを使用して、同期からの終了コード値に基づいた dbmlsync プロセスの終了コード値を定義できます。また、このフックを使用して終了コード値のログを取ることもできます。
同期を開始する前の起動中にエラーが発生した場合、#hook_dict 内の Mobile Link ユーザとスクリプト・バージョンのエントリは空の文字列に設定され、#hook_dict テーブルで設定される publication_n ローはありません。
dbmlsync を実行して 5 つの同期を行い、終了コードで失敗した同期の数を示すとします。たとえば、終了コード 0 は失敗がないことを示し、1 は 1 つの同期が失敗したことを示します。これを実現するには、sp_hook_dbmlsync_process_exit_code フックを次のように定義します。この場合、3 つの同期が失敗すると新しい終了コードは 3 になります。
CREATE PROCEDURE sp_hook_dbmlsync_process_exit_code() BEGIN DECLARE rc INTEGER; SELECT value INTO rc FROM #hook_dict WHERE name = 'exit code'; IF rc <> 0 THEN SELECT value INTO rc FROM #hook_dict WHERE name = 'last exit code'; UPDATE #hook_dict SET value = rc + 1 WHERE name = 'new exit code'; END IF; END; |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |