Detecção e resolução de conflitos de replicação
Quando ocorre a sincronização após a sincronização inicial, as alterações feitas nos dados em um assinante podem entrar em conflito com as alterações feitas em um assinante diferente ou no Editor. Quando você cria a publicação, atribui um resolvedor para manipular esses conflitos.
Detectando conflitos
Quando ocorre a sincronização, o Agente de Mesclagem que está sendo executado no Editor detecta todos os conflitos de dados e determina quais dados serão aceitos e propagados para outros sites com base no resolvedor associado à publicação.
O Microsoft SQL Server Compact 3.5 dá suporte ao controle em nível de linha e em nível de coluna ao fazer a sincronização com Publicadores do SQL Server 2005, do SQL Server 2008 e do SQL Server 2008 R2.
Observação
A sincronização com o SQL Server 2000 não é suportada no SQL Server Compact 3.5.
Usando resolvedores
Após a detecção de um conflito, o Agente de Mesclagem inicia o resolvedor de conflito selecionado para o artigo. Pode ser o resolvedor padrão, um dos outros resolvedores fornecidos ou um resolvedor personalizado. As alterações aceitas são escolhidas de acordo com as regras do resolvedor de conflito. Os conflitos do Assinante do SQL Server Compact 3.5 são sempre detectados, resolvidos e registrados no Editor.
Importante
O acesso multiusuário agora permite alterações de dados durante a sincronização. Essas alterações podem causar um conflito de cliente. Os conflitos de cliente são detectados, mas não são resolvidos, no Assinante. O conflito será redirecionado e resolvido no editor durante a próxima sincronização. Para obter mais informações, consulte Sincronização e acesso multiusuário.
Os resolvedores podem usar a fonte de alteração de dados ou o valor de prioridade do Assinante para resolver os conflitos. Por exemplo, o resolvedor padrão segue a regra de que as alterações no Editor sempre substituem as alterações no Assinante. Você pode optar por usar um resolvedor diferente que sempre favoreça as alterações no Assinante, e não no Editor.
Observação
Os clientes do SQL Server Compact 3.5 sempre tem um valor de prioridade 0. Assim, um resolvedor baseado no valor de prioridade não dará prioridade para as alterações feitas no dispositivo.
Para obter mais informações sobre a detecção e resolução de conflitos, consulte "Detecção e resolução de conflitos da replicação de mesclagem" nos Manuais Online do SQL Server.
Observação
Os procedimentos armazenados com base nos resolvedores de conflitos de mesclagem não têm suporte nas assinaturas do SQL Server Compact 3.5.
Usando resolvedores personalizados
Os resolvedores personalizados permitem adicionar lógica comercial à replicação. Um resolvedor personalizado é uma DLL criada em código gerenciado ou nativo. Para ser usado, o resolvedor personalizado deve ser registrado no Editor e no servidor que está executando o IIS usando o procedimento armazenado sp_registercustomeresolver. O procedimento armazenado sp_registercustomeresolver inclui o parâmetro is_dotnet_assembly, que você define como true, para um resolvedor criado em código gerenciado, ou como false, para uma DLL nativa.
Importante
Um resolvedor personalizado deve ser registrado no computador que está executando o IIS, além do computador que está executando o SQL Server.