Executar lógica de negócios durante sincronizações de mesclagem

Aplica-se a:SQL Server

O framework do manipulador de lógica de negócios permite que você crie um assembly em código gerenciado que é invocado durante o processo de sincronização de mesclagem. O assembly inclui lógica comercial que pode responder a uma série de condições durante a sincronização: alterações de dados, conflitos e erros. O framework do manipulador de lógica de negócios fornece um modelo de programação simples, e os dados que o processo de mesclagem fornece para seu assembly vêm na forma de um conjunto de dados ADO.NET, de modo que você pode usar seus conhecimentos de ADO.NET em vez de aprender uma interface proprietária. Para obter mais informações sobre como programar manipuladores de lógica comercial, consulte:

Usos dos manipuladores de lógica de negócios

O processo de sincronização de mesclagem pode chamar manipuladores de lógica comercial para executar:

  • Tratamento personalizado de alterações

  • Resolução de conflito personalizada

  • Resolução de erro personalizada

Observação

O manipulador de lógica de negócios que você especificar será executado para cada linha que for sincronizada. Lógica complexa e chamadas para outras aplicações ou serviços de rede podem afetar o desempenho.

Tratamento personalizado de alterações

O manipulador de lógica comercial pode ser invocado durante o processamento de alterações de dados não conflitantes e pode executar uma destas três ações:

  • Rejeite os dados

    Isso é útil para aplicativos que não desejam que alterações sejam propagadas para ou a partir de um determinado Assinante. Por exemplo, um administrador poderá retirar inserções que não pertencem à partição do Assinante ou possivelmente rejeitar exclusões executadas em um Assinante. Como outro exemplo, um aplicativo poderá rejeitar uma ordem inserida em um Assinante porque o inventário não está mais disponível.

  • Aceite os dados

    Isto é útil para aplicativos nos quais é necessário rever alterações de dados feitas no Publicador ou Assinante antes de permitir a sua propagação. Por exemplo, um aplicativo da camada intermediária poderá examinar novas ordens provenientes do campo e integrá-las com um processo de fluxo de trabalho de aquisição na camada intermediária.

  • Aplique dados personalizados

    Isto é útil para aplicativos que precisam substituir valores de dados ou operações específicos. Por exemplo, um aplicativo poderia transformar a exclusão de uma linha em uma atualização especial que define a coluna status da linha com o valor "excluído" e, em seguida, rastreia a identidade do cliente que executa a exclusão. Isto poderá ser útil para fins de auditoria ou de fluxo de trabalho.

Resolução de conflito personalizada

A replicação de mesclagem fornece detecção e solução de conflitos, permitindo que você aceite uma estratégia de resolução padrão ou escolha uma resolução personalizada para conflitos. Para obter mais informações, consulte Detecção e resolução avançadas de conflitos de replicação de mesclagem. O manipulador de lógica comercial pode ser chamado durante o processamento de alterações de dados conflitantes e pode executar uma destas duas ações:

  • Aceite resolução padrão

    Isso é útil para aplicativos que podem precisar analisar o conflito, executar ações adicionais e possivelmente registrar uma mensagem de log de conflito personalizada.

  • Execute resolução personalizada

    Isso é útil para aplicativos que podem precisar selecionar valores de dados que são específicos à sua lógica comercial e fornecer o processo de sincronização com este conjunto de dados personalizados. Por exemplo, um aplicativo poderá fornecer uma nova versão da linha vencedora combinando valores dos conjuntos de dados do Publicador e Assinante.

Resolução de erro personalizada

A lógica personalizada pode ser chamada durante a propagação de alterações que resultam em erros. A lógica pode executar uma dessas duas ações:

  • Aceite resolução de erro padrão

    Isso é útil para aplicativos precisam analisar o erro e executar outras ações e, possivelmente, registrar uma mensagem de log de erros personalizada.

  • Aceite resolução de erro personalizada

    Isso é útil para aplicativos que podem precisar selecionar valores de dados que são específicos à sua lógica comercial e fornecer o processo de sincronização com este conjunto de dados personalizados. Por exemplo, se o processo de replicação encontrar uma violação de chave duplicada, o manipulador de lógica comercial poderá fornecer uma nova versão da alteração de dados em que a chave não será mais conflitante. As alterações feitas no Publicador e no Assinante podem então persistir no banco de dados, e o processo de replicação não precisa compensar a falha na inserção com uma exclusão.

Cenários de Implantação para Manipuladores de Lógica de Negócios

Manipuladores de lógica de negócios podem ser implantados em:

  • O Distribuidor. Use uma assinatura push de forma que a lógica comercial seja executada no Distribuidor.

  • Assinante. Use uma assinatura pull de forma que a lógica comercial seja executada no Assinante.

  • Um servidor IIS (Serviços de Informações da Internet) se a sincronização da Web for usada. Use uma assinatura pull sincronizada com a sincronização da Web, e o manipulador de lógica de negócios será executado no servidor IIS.