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 同期の概要 » 同期処理

 

同期の障害処理の方法

Mobile Link は、フォールト・トレラントになっています。たとえば、同期中に通信リンクに障害が起きた場合は、リモート・データベースと統合データベースの両方が同じ状態のままになります。

クライアントでは、障害はリターン・コードで示されます。

同期障害の処理方法は、発生したタイミングによって異なります。次に示すケースは、それぞれ異なる方法で処理されます。

  • アップロード中の障害   アップロードの構築中や適用中に障害が起きた場合は、リモート・データベースは同期の起動時とまったく同じ状態のままになります。サーバ側では、適用されたアップロードのすべての部分がロールバックされます。

  • アップロードとダウンロード間の障害   アップロードの完了後、Mobile Link クライアントがダウンロードを受信する前に障害が発生した場合、クライアントはアップロードした変更が統合データベースに適切に適用されたかどうかを確認できません。アップロードが完全に適用されコミットされているか、サーバがアップロード全体を適用する前に障害が起きています。Mobile Link サーバは、統合データベースにある不完全なトランザクションを自動的にロールバックします。

    アップロードされたすべての変更を再送する必要が生じた場合に備え、Mobile Link クライアントはそれらの記録を維持します。Mobile Link クライアントは、次に同期したときに前回のアップロードの状態を要求してから、新しいアップロードを構築します。前回のアップロードがコミットされていない場合は、新しいアップロードに前回のアップロードからの変更がすべて含まれます。

  • ダウンロード中の障害   ダウンロードの適用中にリモート・デバイスで障害が起きた場合は、適用されたダウンロードはすべての部分がロールバックされ、リモート・データベースはダウンロード前と同じ状態のままになります。

    ブロッキング・ダウンロード確認を使用している場合、Mobile Link サーバでは統合データベースのダウンロード・トランザクションもロールバックされます。

    非ブロッキング・ダウンロード確認を使用している場合、ダウンロード・トランザクションはすでにコミットされていますが、nonblocking_download_ack スクリプトと publication_nonblocking_download_ack スクリプトは呼び出されません。

    ダウンロード確認を使用していない場合、ダウンロード中に障害が発生しても、サーバ側には影響はありません。

どのような障害が発生しても、データは失われません。Mobile Link サーバと Mobile Link クライアントが障害時のデータ管理を行います。開発者やユーザは、アプリケーション内のデータが一貫性を保持しているかどうか心配する必要はありません。