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

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

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