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 サーバは、再起動可能なダウンロードで使用するために、クライアントに受信されなかったダウンロード・データを保持します。-ds オプションを使用して、再起動可能なダウンロードに割り当てるデータの最大量を小さくすることで、ダウンロードの失敗が発生する確率を低くすることができます。サーバがダウンロード・データを破棄するのは、次のいずれかの場合です。

  • ユーザがダウンロードを正常に完了した場合。

  • 再開を有効にしていない状況で、ユーザが新しい同期要求で復帰した場合。

  • 受信要求のキャッシュが必要な場合。正常にダウンロードできなかった最も古いデータが、最初にクリアされます。

Mobile Link は、ダウンロードの失敗からのリカバリを支援する機能を備えています。この機能を使用すると、ダウンロード全体の再送を防ぐこともできます。この機能は、SQL Anywhere と Ultra Light リモート・データベースでそれぞれ別に実装されています。-ds オプションを参照してください。

SQL Anywhere リモート・データベース

ダウンロード中に同期が失敗すると、ダウンロードされたデータはリモート・データベースには適用されません。ただし、正常に送信されたダウンロードの部分は、リモート・デバイスのテンポラリ・ファイルに格納されます。dbmlsync は、このファイルを使用して長時間のデータ再送を防ぎ、ダウンロードの失敗からリカバリします。

この機能を実装するには 3 つの方法があります。どの方法の場合も、dbmlsync はアボートされ、アップロードする新しいデータが存在する場合は再開されたダウンロードは失敗します。

  • -dc   ダウンロードが失敗した後、次回 dbmlsync を起動するときに、-dc を使用してダウンロードを再開します。失敗したダウンロードの一部が送信されている場合、Mobile Link サーバは、ダウンロードの残りだけを送信します。

    詳細については、-dc オプションを参照してください。

  • ContinueDownload (cd) 拡張オプション   dbmlsync コマンド・ラインで使用した場合、cd 拡張オプションは -dc オプションと同じように動作します。このオプションは、データベース内に格納したり、sp_hook_dbmlsync_set_extended_options を使用して 1 つの同期内に設定することもできます。

    ContinueDownload (cd) 拡張オプションsp_hook_dbmlsync_set_extended_optionsを参照してください。

  • sp_hook_dbmlsync_end hook   restart パラメータを使用して、ダウンロードを再開できます。restartable download パラメータが true に設定されている場合は、ダウンロードを再開できます。ダウンロード・ファイルが存在し、一定のサイズの場合は、フック内に論理を作成してダウンロードを再開することもできます。

    sp_hook_dbmlsync_endを参照してください。

Ultra Light リモート・データベース

次に示すように、ダウンロードが失敗した後の Ultra Light アプリケーションの動作を制御できます。

  • 同期時に Keep Partial Download 同期パラメータを true に設定している場合、ダウンロードが完了する前に失敗すると、Ultra Light はダウンロードされた変更の部分を適用します。また Ultra Light は、Partial Download Retained パラメータを true に設定します。

    この時点では、Ultra Light データベースは一貫性のない状態になります。アプリケーションの仕様に応じて、同期を正常に完了するか、データの変更を許可する前にロールバックしてください。Keep Partial Download 同期パラメータPartial Download Retained 同期パラメータを参照してください。

  • ダウンロードを再開するには、Resume Partial Download 同期パラメータを true に設定し、再度同期を実行します。Resume Partial Download 同期パラメータを参照してください。

    再開された同期はアップロードを実行せず、失敗したダウンロードによってダウンロードされた変更のみをダウンロードします。つまり、失敗したダウンロードは完了しますが、前回の実行以降に行われた変更は同期しません。これらの変更を取得するには、一度失敗したダウンロードが完了してから、再度同期を実行する必要があります。または、Rollback Partial Download を呼び出し、Resume Partial Download を false に設定した状態で同期します。

    ダウンロードを再開すると、失敗した同期から多数の同期パラメータがもう一度自動的に使用されます。たとえば、パブリケーション・パラメータは無視されます。同期は、最初のダウンロードで要求されたパブリケーションをダウンロードします。唯一設定が必要なパラメータは、Resume Partial Download パラメータ (true に設定) と User Name パラメータです。また、以下のパラメータ (設定されている場合) の設定も有効です。

    • Keep Partial Download (今後の中断に備える)
    • DisableConcurrency
    • Observer
    • User Data
  • 失敗したダウンロードからの変更を、同期を再開せずにロールバックするには、変更をロールバックする関数を呼び出します。この関数は、embedded SQL の ULRollbackPartialDownload 関数です。Ultra Light コンポーネントの場合は、Connection オブジェクトのメソッドです。

    サーバやネットワークが使用できないなどの理由で同期が完了できない場合や、エンド・ユーザに作業を続行させながらデータの一貫性を維持したい場合に、失敗したダウンロードから変更をロールバックできます。

通信エラーの詳細については、エラー・メッセージを参照してください。

注意

send_download_ack 同期パラメータが true に設定されている場合、再開されたダウンロードでは設定は無視されます。