Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

인터페이스 수동 복구UnsyncedChangesStrategy

이 페이지의 내용

  • io.realm.mongodb.sync
  • 메서드 요약
  • 상속된 메서드
  • 메서드 세부 정보
  • onClientReset

구현된 인터페이스:

클라이언트 재설정을 수동으로 해결하는 전략으로, 오류 코드 ErrorCode.CLIENT_RESET 에 의해 결정됩니다.

MongoDB Realm 서버에 오류가 발생하여 백업에서 복원해야 하거나 클라이언트가 서버에 연결한 지 너무 오래되어 서버가 로그를 순환했기 때문에 동기화된 Realm을 재설정해야 할 수 있습니다.

따라서 클라이언트 재설정이 발생하는 이유는 서버에 클라이언트를 최신 상태로 유지하는 데 필요한 전체 정보가 없기 때문입니다.

수동 재설정 프로세스는 다음과 같습니다: Realm의 로컬 복사본이 보관을 위해 복구 디렉토리에 복사된 다음 원래 위치에서 삭제됩니다. 다음에 해당 URL의 Realm이 열리면 Realm이 MongoDB Realm에서 자동으로 다시 다운로드되며 정상적으로 사용할 수 있습니다.

백업 원격 복사본에서 분기된 Realm의 로컬 복사본 이후에 Realm에 기록된 데이터는 Realm 파일의 로컬 복구 복사본에 존재합니다. 다시 다운로드한 Realm에는 처음에는 Realm이 서버에 백업된 시점의 데이터만 포함됩니다.

클라이언트 재설정 프로세스는 다음 두 가지 방법 중 하나로 시작할 수 있습니다.

  1. ClientResetRequiredError.executeClientReset()을 수동으로 실행합니다. 이 메서드가 호출되기 전에 모든 Realm 인스턴스를 닫아야 합니다.

  2. 클라이언트 재설정을 수동으로 실행하지 않으면 다음에 모든 Realm 인스턴스를 닫았다가 다시 열 때 자동으로 수행됩니다. 이 경우 대부분 앱이 다시 시작될 수 있습니다.

경고: 이 콜백 과 클라이언트 재설정이 실행된 사이에 Realm 파일 에 대한 모든 쓰기는 MongoDB Realm 에 동기화되지 않습니다. 이러한 변경 사항은 백업된 파일 에만 표시됩니다. 따라서 열려 있는 모든 Realm 인스턴스를 가능한 한 빨리 닫는 것이 좋습니다.

수정자 및 유형
메서드 및 설명
public void
onClientReset (
)

클라이언트 재설정이 발생했음을 나타내는 콜백입니다.

클라이언트 재설정이 발생했음을 나타내는 콜백입니다. Realm에 대한 추가 변경 사항은 서버와 동기화되지 않으며 백업 Realm에서 새 Realm으로 수동으로 이동해야 하므로 이 작업을 가능한 한 빨리 처리해야 합니다.

매개변수

  • session - SyncSession 에서 이 오류가 발생했습니다.

  • error - ClientResetRequiredError 특정 클라이언트 재설정 오류입니다.

돌아가기

DiscardUnsyncedChangesStrategy