Validando informações de partição para um assinante de mesclagem
Quando você define um filtro de linha com parâmetros para uma publicação de mesclagem, usa uma função que faz referência à informação do Assinante, como o nome de logon do Assinante. Por padrão, a replicação valida a informação do Assinante baseada nessa função, antes de cada sincronização e sempre que um instantâneo é aplicado ao Assinante. O processo de validação assegura que os dados são particionados corretamente para cada Assinante. O comportamento da validação é controlado pela propriedade de publicação validate_subscriber_info, a qual pode ser alterada usando sp_changemergepublication (Transact-SQL) ou na página Opções de Assinatura da caixa de diálogo de Propriedades de Publicação. Para obter mais informações sobre como alterar propriedades de publicação, consulte Como exibir e modificar propriedades de publicação (Programação Transact-SQL de replicação) e Como exibir e modificar propriedades de Artigo e Publicação (SQL Server Management Studio).
Como a validação de partição funciona
Quando uma publicação é filtrada, por exemplo, usando a função SUSER_SNAME(), o Merge Agent aplica o instantâneo inicial a cada Assinante baseado nos dados válidos para a expressão SUSER_SNAME().
Se a validação é ativada, quando o Assinante se conecta novamente ao Publicador para a sincronização seguinte, o Merge Agent valida a informação do Assinante e assegura que cada partição de assinante seja a mesma que a recebida no instantâneo inicial. Para cada mesclagem subseqüente ou aplicativo de instantâneo, o Merge Agent valida a partição de cada Assinante.
Se o Merge Agent detecta que a função usada na expressão de filtragem retornou um valor diferente daquele do instantâneo inicial, o aplicativo de mesclagem ou de instantâneo falhará, e essa assinatura do Assinante poderá necessitar reinicialização. A reinicialização poderá ser necessária para evitar problemas, que podem surgir se as configurações de mesclagem de um Assinante são alteradas, mas poderá ser suficiente para alterar informações no Assinante, como o nome de logon, novamente ao valor usado no momento do instantâneo original.
Quando o Merge Agent valida uma partição, além de validar a partição comparando aos valores retornados por todas as funções usadas em expressões de filtragem, o agente também verifica se o instantâneo foi gerado antes das mudanças que o invalidem, como operações de limpeza de metadados ou mudanças de esquema. Se um instantâneo é muito antigo, o Merge Agent retornará um erro e você precisará gerar novamente um instantâneo particionado para esse Assinante, baseado em um instantâneo regular atual.
Consulte também