Pausar ou encerrar o Sync
Se você deseja desativar o Atlas Device Sync para seu aplicativo, você pode pausar temporariamente ou encerrá-lo permanentemente. Você também pode reativar a sincronização de dispositivos depois de desativá-la.
Você podepausar temporariamente o Device Sync se precisar pausar o cluster. Com uma pausa temporária, você pode reativar sem redefinir a configuração do Device Sync ou perder metadados do Device Sync .
Você pode encerrar permanentemente e reativar o Device Sync para solução de problemas ou se quiser alterar a configuração do Device Sync.
O Device Sync é pausado automaticamente após 30 dias de inatividade.
Pausar sincronização
Você pode pausar o Realm Mobile Sync por um período de tempo sem desativá-lo totalmente. Ao pausar o Device Sync, você para de sincronizar as alterações entre o Atlas e seu aplicativo.
Importante
Se você precisar pausar seu cluster, pause o Device Sync primeiro. Caso contrário, você deve encerrar e reativar o Device Sync e fazer um reinício do cliente.
Pausar o Realm Mobile Sync rejeita quaisquer conexões de cliente de entrada. Isso significa que pausar o Realm Mobile Sync para seu aplicativo interrompe a sincronização de alterações para todos os clientes.
Você pode usar a App Services API para pausar programaticamente o Device Sync.
Obter um token de autenticação
Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization
.
Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.
Obtenha ID de grupo, aplicativo e serviço
Obtenha o ID do grupo e do aplicativo para seu aplicativo.
Obtenha o ID de serviço do seu serviço de sincronização. Você pode obter todos os serviços programaticamente usando o endpoint adminListServices .
Como alternativa, você pode extrair IDs de grupo, aplicativo e serviço da URL quando visualizar a interface do usuário.
Go o App Services App onde o Device Sync está configurado.
Selecione Linked Data Sources na barra lateral em Manage.
Selecione o mongodb-atlas CLUSTER.
A URL na barra de ferramentas do seu navegador agora deve ser semelhante a:
https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config
Obter a configuração do serviço de sincronização
Envie uma solicitação GET para o ponto de extremidade adminGetServiceConfig para obter a configuração do serviço Device Sync . Isso retorna um objeto de configuração de serviço semelhante a:
{ "clusterId": "<MY-CLUSTER-ID>", "clusterName": "Cluster0", "clusterType": "atlas", "flexible_sync": { "state": "enabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false }, "groupName": "<MY-GROUP-NAME>", "orgName": "<MY-ORG-NAME>", "readPreference": "primary", "wireProtocolEnabled": false }
Para obter detalhes sobre a configuração de sincronização retornada por esse endpoint, consulte a Referência do arquivo de configuração de sincronização.
Editar a configuração do serviço de sincronização
Remova apenas a parte flexible_sync
da configuração para um novo objeto JSON. Esta configuração contém um campo state
que reflete o estado atual do protocolo de sincronização do aplicação. Defina esse valor como disabled
. Isto agora deve se assemelhar a um blob JSON semelhante a:
{ "flexible_sync": { "state": "disabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false } }
Atualizar a Configuração no Atlas
Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .
Para pausar a Device Sync no lado do cliente , usando a lógica que pausa a Device Sync durante uma sessão, consulte o SDK de sua preferência:
Pausar ou retomar uma sessão de sincronização de dispositivo - Flutter SDK
Pausar ou retomar uma sessão de sincronização de dispositivo - Kotlin SDK
Pausar ou retomar uma sessão de sincronização de dispositivo - Java SDK
Pausar ou retomar uma sessão de sincronização de dispositivo - .Net SDK
Pausar ou retomar uma sessão de sincronização de dispositivo - Reagir SDK nativo
Depois de pausar o Device Sync, você pode reabilitá-lo. A pausa do Device Sync mantém as definições de configuração e todos os metadados do Device Sync, que contêm o histórico de sincronização. Ao reativar a Device Sync pausada, seus clientes podem se reconectar normalmente.
Aviso
Se o seu oplog passar do momento em que você pausou o Device Sync, você deverá encerrar e reativar o Device Sync. Por exemplo, se você manter apenas 12 horas de oplog para seu cluster e pausar o Device Sync por mais de 12 horas, deverá encerrar e reativar o Device Sync.
Encerrar e reativar o Atlas Device Sync pausado para o seu aplicativo apaga os metadados do Atlas Device Sync e exige que você especifique as definições de configuração novamente. Os clientes devem fazer um reinício do cliente quando se reconectarem após o encerramento do Atlas Device Sync . Para obter mais informações, consulte: Encerrar sincronização.
Encerrar sincronização
Se você tiver ativado o Realm Mobile Sync, talvez seja necessário encerrar e reativar o Realm Mobile Sync em algumas circunstâncias diferentes:
Uma atualização de um cluster do Atlas de Nível Compartilhado para uma instância Compartilhada ou Dedicada
Uma mudança para um cluster do Atlas distribuído entre regiões/fornecedor de cloud
Uma atualização para cluster do Atlas NVMe
Um rollover de oplog
Uma sessão de Device Sync pausada em um cluster de nível compartilhado devido ao uso pouco frequente
Solução de problemas, a pedido do Suporte MongoDB
Alternar entre os modos de sincronização. Por exemplo, se você estiver mudando da sincronização baseada em partição para a Flexible Sync
Soltando uma collection que você usou com a sincronização. Por exemplo, se você tiver uma collection
Team
que armazena e sincroniza objetoTeam
e depois descartar essa collection, deverá encerrar e reativar a sincronização.
Aviso
Restaurar a sincronização após encerrar a sincronização
Quando você encerra e reativa o Atlas Device Sync, os clientes não podem mais sincronizar. Seu cliente deve implementar um manipulador de redefinição de cliente para restaurar a sincronização. Este manipulador pode descartar ou tentar recuperar alterações não sincronizadas.
Encerre a sincronização de dispositivos em seu aplicativo para parar de sincronizar dados entre dispositivos.
Confirme que você deseja encerrar a sincronização
No modal que aparece, digite "Encerrar sincronização" na entrada de texto e clique no botão Terminate Sync .
Se você estiver usando esquemas de distribuição de UI , deverá implantar o esquema para realmente encerrar a sincronização.
Você agora encerrou o Realm Mobile Sync.
Você pode usar a App Services API para encerrar o Device Sync programaticamente.
Obter um token de autenticação
Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization
.
Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.
Obtenha ID de grupo, aplicativo e serviço
Obtenha o ID do grupo e do aplicativo para seu aplicativo.
Obtenha o ID de serviço do seu serviço de sincronização. Você pode obter todos os serviços programaticamente usando o endpoint adminListServices .
Como alternativa, você pode extrair IDs de grupo, aplicativo e serviço da URL quando visualizar a interface do usuário:
Go o App Services App onde o Device Sync está configurado.
Selecione Linked Data Sources na barra lateral em Manage.
Selecione o mongodb-atlas CLUSTER.
A URL na barra de ferramentas do seu navegador agora deve ser semelhante a:
https://services.cloud.mongodb.com/groups/$GROUP_ID/apps/$APP_ID/services/$SERVICE_ID/config
Obter a configuração do serviço de sincronização
Envie uma solicitação GET para o ponto de extremidade adminGetServiceConfig para obter a configuração do serviço Device Sync . Isso retorna um objeto de configuração de serviço semelhante a:
{ "clusterId": "<MY-CLUSTER-ID>", "clusterName": "Cluster0", "clusterType": "atlas", "flexible_sync": { "state": "enabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false }, "groupName": "<MY-GROUP-NAME>", "orgName": "<MY-ORG-NAME>", "readPreference": "primary", "wireProtocolEnabled": false }
Para obter detalhes sobre a configuração de sincronização retornada por esse endpoint, consulte a Referência do arquivo de configuração de sincronização.
Editar a configuração do serviço de sincronização
Esta configuração contém um campo state
que reflete o estado atual do protocolo de sincronização para o aplicação. Defina este valor como uma string vazia ""
. Isto agora deve se assemelhar a um blob JSON semelhante a:
{ "flexible_sync": { "state": "", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false } }
Atualizar a Configuração no Atlas
Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .
Depois de encerrar o Device Sync, você pode reabilitá-lo. O encerramento do Device Sync destrói as definições de configuração e todos os metadados do Device Sync, que contêm o histórico de sincronização. A reativação da sincronização exige que você conclua as etapas de configuração da sincronização novamente. Os clientes que se conectaram anteriormente não podem se reconectar até que façam um reinício do cliente.
Reativar a sincronização
Depois de pausar ou encerrar o Realm Mobile Sync, você pode reabilitá-la. Reativar o Device Sync permite que seu aplicativo comece a sincronizar as alterações no Atlas novamente. Depois de reativar a sincronização de dispositivos, seu aplicativo começa a aceitar conexões de clientes de entrada novamente.
Quando você pausa o Device Sync, o App Services preserva suas definições de configuração, e você pode pular a etapa Configurar sincronização . Ao encerrar o Device Sync ou quando o oplog ultrapassar o momento em que você pausou o Device Sync, você deve especificar as definições de configuração novamente.
Para reativar o Realm Mobile Sync, siga as etapas do guia Configurar e habilitar o Atlas Device Sync .
Você pode usar a App Services API para reativar programaticamente o Device Sync. Este procedimento pressupõe que você já tem uma configuração de sincronização para o cluster que pode ser usada para reativar a sincronização com as mesmas configurações.
Obter um token de autenticação
Toda solicitação ao App Services Admin API deve incluir um token de autorização válido e atual da MongoDB Cloud API como um token de portador no cabeçalho Authorization
.
Para obter detalhes sobre como obter um token de autenticação, consulte Obter tokens de autenticação.
Obter IDs de grupo e aplicativo
Obtenha o ID do grupo e do aplicativo para seu aplicativo.
Editar a configuração do serviço de sincronização
Esta configuração contém um campo state
que reflete o estado atual do protocolo de sincronização para o aplicação. Defina esse valor como enabled
. Isto agora deve se assemelhar a um blob JSON semelhante a:
{ "flexible_sync": { "state": "enabled", "database_name": "todo", "permissions": { "rules": {}, "defaultRoles": [] }, "client_max_offline_days": 30, "is_recovery_mode_disabled": false } }
Atualizar a Configuração no Atlas
Envie a configuração atualizada do Serviço de sincronização como uma carga útil em uma solicitação PATCH para o endpoint adminUpdateServiceConfig .
Conectar do cliente
A reativação da sincronização ativa as conexões do cliente de entrada. No entanto, em algumas circunstâncias, o código do aplicativo cliente pode precisar executar um reinício do cliente antes que os clientes possam sincronizar novamente.
Seu código deve lidar com um reinício do cliente quando um cliente tiver se conectado anteriormente ao Device Sync e você encerrar o Device Sync. Encerrar o Realm Mobile Sync para sua aplicação apaga os metadados do Realm Mobile Sync de que o cliente precisa para se reconectar.
Isso também se aplica a aplicativos em que o Device Sync está pausado por mais tempo do que o oplog que você mantém para o cluster. Por exemplo, se você manter apenas 12 horas de oplog para seu cluster e pausar o Device Sync por mais de 12 horas, deverá encerrar e reativar o Device Sync.
Para obter informações sobre como realizar um reinício do cliente no cliente, consulte a documentação do SDK: