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 サーバ・テクノロジの使用 » Mobile Link ファイルベースのダウンロード » 検証チェック

 

自動検証

dbmlsync は、最終ダウンロード・タイムスタンプ、次の最終ダウンロード・タイムスタンプ、ダウンロード・ファイルの作成時刻、トランザクション・ログに特別なチェックを実行してから、ダウンロード・ファイルを適用します。

最終ダウンロード・タイムスタンプと次の最終ダウンロード・タイムスタンプ

各ダウンロード・ファイルには、ファイルの最終ダウンロード・タイムスタンプから次の最終ダウンロード・タイムスタンプまでの間に統合データベースで発生したダウンロード対象のすべての変更が格納されています。この時刻は、統合データベースの時刻です。デフォルトでは、ファイルの最終ダウンロード時刻は 1900 年 1 月 1 日 12:00 AM で、ファイルの次の最終ダウンロード・タイムスタンプはダウンロード・ファイルが作成された時刻です。これらのデフォルト値を上書きするには、modify_last_download_timestamp スクリプトと modify_next_last_download_timestamp スクリプトを統合データベースに実装します。

リモート・サイトは、ファイルの最終ダウンロード・タイムスタンプが、リモートの最終ダウンロード・タイムスタンプ以前である場合にのみ、ダウンロード・ファイルを適用できます。これにより、リモートは統合データベースで発生した操作を失うことはありません。通常、このチェックに基づいたファイルベースのダウンロードが失敗した場合、リモート・サイトは 1 つまたは複数のダウンロード・ファイルを失っていることになります。この状況を修正するには、取得しなかったダウンロード・ファイルを適用するか、完全な同期またはダウンロード専用の同期を実行します。

さらに、リモート・サイトは、次のファイルの最終ダウンロード・タイムスタンプが、リモートの最終ダウンロード・タイムスタンプよりも後である場合にのみ、ダウンロード・ファイルを適用できます。リモートの最終ダウンロード・タイムスタンプは、ダウンロード対象のすべての変更をリモートが受信するまでの時刻 (統合データベースでの時刻) です。リモート・データベースの最終ダウンロード時刻は、通常またはファイルベースのダウンロードをリモートが正常に適用するたびに更新されます。このチェックを行うことにより、より新しいデータがすでにダウンロードされている場合はダウンロード・ファイルが適用されることはありません。一般的には、これが発生するのは、ダウンロード・ファイルが正常に適用されなかった場合です。たとえば、ダウンロード・ファイル F1.df が作成され、別のファイル F2.df が後で作成されたとします。このチェック機能により、F2.df の後に F1.df が適用されることはありません。これは、F2.df の新しいデータが、F1.df の古いデータで上書きされてしまうのを防ぐためです。

次の最終ダウンロード・タイムスタンプに基づいたファイルベースのダウンロードが失敗した場合、このファイルを削除する以外に必要な作業はありません。新しいファイルを受信すると、同期は成功します。

作成時刻

ダウンロード・ファイルの作成時刻は、ファイルの作成が開始された時点の統合データベースでの時刻を示しています。ダウンロード・ファイルを適用できるのは、ファイルの作成時刻が、リモート・データベースの最終アップロード時刻よりも後の場合だけです。リモートの最終アップロード時刻は、リモートの正常な最終アップロードがコミットされた時点の統合データベースでの時刻です。このチェックにより、ダウンロードの作成後にアップロードされた (ダウンロードよりも新しい) データは、ダウンロード・ファイルの古いデータで上書きされることはありません。

このチェックに基づいてダウンロード・ファイルが拒否されても、必要な作業はありません。リモート・サイトは、次のダウンロード・ファイルの適用が可能になっている必要があります。

dbmlsync がアップロードを Mobile Link サーバに送信した後に確認を取得しなかったためにアップロードが失敗した場合は、リモート・データベースの最終アップロード時刻が正しくないことがあります。この場合、作成時刻のチェックを実行できません。また、リモート・データベースは通常の同期を完了するまでダウンロード・ファイルを適用できません。

トランザクション・ログ

dbmlsync は、リモート・データベースのトランザクション・ログをスキャンし、アップロードする必要があるすべての変更のリストを構築してから、ダウンロード・ファイルを適用します。dbmlsync がダウンロード・ファイルを適用するのは、アップロードが必要な変更のあるローに影響する操作がダウンロード・ファイルに含まれていない場合だけです。