Compartilhar via


Conflito de replicação de mesclagem avançada – resolvedores personalizados baseados em COM

Aplica-se a: SQL Server

Resolvedores personalizados fornecem maior flexibilidade do que o mecanismo de resolução padrão, e podem implementar a lógica comercial exigida por aplicativos usando dados replicados. Um resolvedor personalizado com base em COM é uma biblioteca de vínculo dinâmico (DLL) que implementa a interface COM ICustomResolver , seus métodos e propriedades e outras interfaces de suporte e definições de tipo criadas especificamente para resolução de conflito.

Observação

Se possível, recomenda-se o uso de um manipulador de lógica de negócios em vez de um resolvedor personalizado com base em COM. Para obter mais informações sobre manipuladores de lógica de negócios, consulte Executar lógica de negócios durante a sincronização de mesclagem.

Para criar um resolvedor de COM personalizado, você pode usar a biblioteca de tipos fornecida no replrec.dll; por padrão, essa biblioteca é instalada em C:\Program Files\Microsoft SQL Server\nnn\COM.

Antes de gravar um resolvedor COM personalizado, é necessário decidir:

  • Os tipos de alterações de linhas que você quer resolver, como atualizações, inserções e exclusões, e se o resolvedor deve ser chamado durante o carregamento de alterações de mesclagem, o download de alterações de mesclagem ou ambos. É possível especificar um tipo de alteração, todas as alterações ou qualquer combinação. O resolvedor de conflito padrão de mesclagem controla quaisquer conflitos não controlados por um resolvedor personalizado.

  • Quando usar controle de coluna ao resolver o conflito. Quando rastreamento de nível de coluna estiver habilitado, somente dados naquelas colunas em que existir um conflito serão sinalizados como conflito, caso contrário os dados serão mesclados. No entanto, conflitos são resolvidos da mesma forma que rastreamento em nível de linha: o vencedor de prioridade substitui toda a coluna de dados (mas os dados podem ser uma mistura de valores do Publicador, Assinantes ou alguns valores alterados que não eram nem do Publicador e nem dos Assinantes). Para obter mais informações, consulte Detectar e resolver conflitos de replicação de mesclagem.

Para implementar um resolvedor de conflito personalizado com base em COM, consulte Implementar um resolvedor de conflitos personalizado para um artigo de mesclagem

Um resolvedor personalizado é especificado para um artigo, não para uma publicação inteira. O mesmo resolvedor pode ser usado com mais de um artigo, mas a lógica em resolvedores personalizados é em geral específica para uma determinada tabela. Se a tabela usada no artigo for modificada depois que o resolvedor for criado (por exemplo, renomeando o nome da coluna que é usada em resolução de conflito), o resolvedor personalizado pode precisar ser modificado e recompilado.

Para especificar um resolvedor personalizado, consulte Especificar um resolvedor de artigo de mesclagem.