Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

InterfaceRecuperar manualmente alterações não sincronizadasEstratégia

Nesta página

  • io.realm.mongodb.sync
  • Resumo do método
  • Métodos herdados
  • Detalhes do método
  • onClientReset

Interfaces implementadas:

Estratégia para resolver manualmente uma redefinição de cliente, determinada pelo código de erro ErrorCode.CLIENT_RESET .

Um Realm sincronizado pode precisar ser redefinido porque o Servidor MongoDB Realm encontrou um erro e teve que ser restaurado a partir de um backup ou porque passou muito tempo desde que o cliente se conectou ao servidor, então o servidor rotacionou os logs.

O reinício do cliente, portanto, ocorre porque o servidor não tem as informações completas necessárias para deixar o cliente totalmente atualizado.

O processo de redefinição manual é o seguinte: a cópia local do Realm é copiada em um diretório de recuperação para proteção e, em seguida, excluída do local original. Da próxima vez que o Realm para essa URL for aberto, o Realm será automaticamente baixado do MongoDB Realm e poderá ser usado normalmente.

Os dados gravados no Realm após a cópia local do Realm particionar da cópia remota de backup estarão presentes na cópia de recuperação local do Arquivo de Realm. O Realm rebaixado conterá inicialmente apenas os dados presentes no momento em que o Realm foi copiado no servidor.

O processo de reinício do cliente pode ser iniciado de duas maneiras:

  1. Execute ClientResetRequiredError.executeClientReset() manualmente. Todas as instâncias do Realm devem ser fechadas antes que esse método seja chamado.

  2. Se a redefinição do cliente não for executada manualmente, ela será executada automaticamente na próxima vez que todas as instâncias do Realm tiverem sido fechadas e reabertas. Isso provavelmente será quando o aplicativo for reiniciado.

AVISO: qualquer gravação no Arquivo de Realm entre este chamada de resposta de chamada e a redefinição do cliente foi executada e não será sincronizada com o MongoDB Realm. Essas alterações só estarão presentes no arquivo de backup. Portanto, é recomendável fechar todas as instâncias abertas do Realm o mais rápido possível.

Modificador e tipo
Método e descrição
public void
onClientReset (
)

Chamada de resposta que indica que um reinício do cliente aconteceu.

chamada de resposta que indica que um reinício do cliente aconteceu. Isso deve ser resolvido o mais rápido possível, pois quaisquer alterações adicionais no Realm não serão sincronizadas com o servidor e deverão ser movidas manualmente do Realm de backup para o novo.

Parâmetros

  • session - SyncSession em que este erro ocorreu.

  • error - ClientResetRequiredError o erro de redefinição do cliente específico.

Voltar

DescartarAlteraçõesNão SincronizadasEstratégia