Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » 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 クライアントが障害時のデータ管理を行います。開発者やユーザーは、アプリケーション内のデータが一貫性を保持しているかどうか心配する必要はありません。