0
ApexSQL Diff API을 사용하여 서버와 클라이언트 데이터베이스를 서로 다른 ID 시드와 동기화합니다. 동기화 후 두 데이터베이스를 모두 다시 시드했습니다.syncrhonise 데이터베이스가 경쟁 조건없이 다시 시드 됨
경쟁 조건이 있습니다. 동기화 후 재 시드하기 전에 서버가 새 행을 추가하면 ID가 잘못 표시됩니다. ApexSQL은 자체 데이터베이스 연결을 관리하므로 트랜잭션 내에서 동기화 할 수 없습니다.
예 :
- 시드 클라이언트 데이터베이스 0
- 에 서버 데이터베이스를 다시 시드
- 1000에 클라이언트에 세 개의 행을 추가합니다. ID가 100010011002입니다.
- 세 개의 행을 서버에 추가하십시오. 그들은 ID가 0, 1, 2입니다.
- 동기화. 이제 서버에는 ID가 012100010011002 인 행이 있습니다.
- 클라이언트의 행을 추가하면 서버가 암시 적으로 1003으로 다시 시드됩니다.
- 다른 프로세스에 의해 서버에 행이 추가됩니다. ID는 1003입니다.
- 클라이언트가 서버를 3 ...에 다시 시드합니다. 너무 늦었습니다!