MirrorSyncは、厳密な意味での「トランザクション処理」は行いません
同期中に予期せず接続が失われた場合
もしも同期中に予期せず接続が失われると、あるテーブルのレコードはサーバに書き込まれ、別の関連テーブルのレコードは書き込まれないという自体が発生するかもしれず、これを防ぐことはできません。
- MirrorSyncはこのような場合に備えて、どのレコードが正しく書き込まれたか、どのレコードが書き込まれてなかったか、という同期の途中経過を内部データで管理しています。
- ネットワーク接続が回復して、次の同期を行う際には、中断した同期の続きから再開し、前回の同期が完全に終了したのと同じ状態にします。
Hub上のレコードが編集中でロックされていて書き込めない場合
- Hub上のレコードが他のユーザによって編集されていてFileMakerの排他制限でロックされていてMirrorSyngがSpokeの変更をHubに書き込めない場合、同期を試みたSpokeファイルのユーザに警告のメッセージが表示されます。
- 次回以降の同期で、前回書き込めなかったレコードに対する書き込みを再試行します。この時新たな競合があった場合は、定められた競合の解決オプションにしたがって再度処理されます。
- この処理は、完了するまでの間、警告を表示したSpokeのファイルから同期スクリプトを実行するたびに再試行されます。
原文:Is MirrorSync transactional? What happens if the connection is lost while syncing? http://docs.360works.com/index.php/MirrorSync_advanced_topics#Is_MirrorSync_transactional.3F_What_happens_if_the_connection_is_lost_while_syncing.3F
コメント
0件のコメント
サインインしてコメントを残してください。