0
私はApexSQL Diff APIを使用して、サーバーとクライアントのデータベースを異なるIDシードで同期しています。同期後、私は両方のデータベースを再シードしました。syncrhoniseデータベースは、競合状態なしで再シードします
競合状態があります。同期後でも再シードする前にサーバーが新しい行を追加すると、IDが間違って表示されます。 ApexSQLは独自のデータベース接続を管理しているため、トランザクション内で同期することはできません。
例:
- 再シードクライアントデータベース1000
- 再シードサーバーデータベースへ0
- に、クライアントに3行を追加します。 IDは1000,1001,1002です。
- 3行をサーバーに追加します。彼らはID 0,1,2を持っています。
- 同期します。サーバーはID 0,1,2,1000,1001,1002の行を持つようになりました。
- クライアントの行を追加すると、サーバーは1003に暗黙的に再配置されます。
- 他のプロセスによって行がサーバーに追加されます。 IDは1003です。
- クライアントはサーバーを3に再シードします...遅すぎます!