Mobile Link は、フォールトトレラントになっています。たとえば、同期中に通信リンクに障害が起きた場合は、リモートデータベースと統合データベースの両方が同じ状態のままになります。
クライアントでは、障害はリターンコードで示されます。
同期障害の処理方法は、発生したタイミングによって異なります。次に示すケースは、それぞれ異なる方法で処理されます。
アップロード中の障害 アップロードの構築中や適用中に障害が起きた場合は、リモートデータベースは同期の起動時とまったく同じ状態のままになります。サーバー側では、適用されたアップロードのすべての部分がロールバックされます。
アップロードとダウンロード間の障害 アップロードの完了後、Mobile Link クライアントがダウンロードを受信する前に障害が発生した場合、クライアントはアップロードした変更が統合データベースに適切に適用されたかどうかを確認できません。アップロードが完全に適用されコミットされているか、サーバーがアップロード全体を適用する前に障害が起きています。Mobile Link サーバーは、統合データベースにある不完全なトランザクションを自動的にロールバックします。
Mobile Link クライアントは、アップロードされたすべての変更を記録します。Mobile Link クライアントは、次に同期したときに前回のアップロードの状態を要求してから、新しいアップロードを構築します。前回のアップロードがコミットされていない場合は、新しいアップロードに前回のアップロードからの変更がすべて含まれます。
ダウンロード中の障害 ダウンロードの適用中にリモートデバイスで障害が起きた場合は、適用されたダウンロードはすべての部分がロールバックされ、リモートデータベースはダウンロード前と同じ状態のままになります。
非ブロッキングダウンロード確認を使用している場合、ダウンロードトランザクションはすでにコミットされていますが、nonblocking_download_ack スクリプトと publication_nonblocking_download_ack スクリプトは呼び出されません。
ダウンロード確認を使用していない場合、ダウンロード中に障害が発生しても、サーバー側には影響はありません。
障害が発生しても、データは失われません。Mobile Link サーバーと Mobile Link クライアントが障害時のデータ管理を行います。開発者やユーザーは、アプリケーション内のデータが一貫性を保持しているかどうか心配する必要はありません。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |