Condividi tramite


Conflitti nella replica di tipo merge avanzata - Sistemi di risoluzione personalizzati basati su COM

Si applica a:SQL Server

I sistemi di risoluzione personalizzati offrono una flessibilità maggiore rispetto al meccanismo di risoluzione predefinito e possono implementare la logica di business richiesta dalle applicazioni che utilizzano i dati replicati. Un sistema di risoluzione personalizzato basato su COM è una libreria di collegamento dinamico (DLL, dynamic-link library) che implementa l'interfaccia COM ICustomResolver con i relativi metodi e proprietà e altre interfacce e definizioni di tipi di supporto progettate appositamente per la risoluzione dei conflitti.

Nota

Se possibile, è consigliabile utilizzare un gestore della logica di business anziché un sistema di risoluzione personalizzato basato su COM. Per altre informazioni sui gestori della logica di business, vedere Eseguire logiche di business durante la sincronizzazione di tipo merge.

Per compilare un sistema di risoluzione COM personalizzato, è possibile usare la libreria dei tipi fornita nella replrec.dll; per impostazione predefinita, questa libreria viene installata in <unità>:\Programmi\Microsoft SQL Server\nnn\COM.

Prima di creare un sistema di risoluzione COM personalizzato, è necessario stabilire i fattori seguenti:

  • I tipi di modifiche alle righe che si desidera risolvere, ad esempio le operazioni di aggiornamento, inserimento ed eliminazione oppure se il sistema di risoluzione deve essere richiamato durante le operazioni di caricamento o di download delle modifiche di tipo merge o durante entrambi i processi. È possibile specificare un tipo di modifica, tutte le modifiche o qualsiasi combinazione di modifiche. Il sistema di risoluzione dei conflitti del processo di merge predefinito gestisce tutti i conflitti non risolti da un sistema di risoluzione personalizzato.

  • Se si deve utilizzare il rilevamento a livello di colonna per risolvere il conflitto. Quando si utilizza il rilevamento a livello di colonna, vengono contrassegnati come conflitti solo i dati delle colonne in cui si verifica un conflitto. Negli altri casi i dati vengono uniti. I conflitti vengono risolti nello stesso modo del rilevamento a livello di riga: il vincitore prioritario sovrascrive l'intera riga di dati. I dati possono essere una combinazione dei valori del Publisher, degli iscritti, o alcuni valori modificati che non provengono né dal Publisher né dagli iscritti. Per altre informazioni, vedere Rilevare e risolvere i conflitti tra repliche di tipo merge.

Per implementare un sistema di risoluzione dei conflitti personalizzato basato su COM, vedere Implementazione di un sistema di risoluzione dei conflitti personalizzato per un articolo di tipo merge.

Un sistema di risoluzione personalizzato viene specificato per un articolo, non per un'intera pubblicazione. Lo stesso sistema può essere utilizzato con più articoli, ma la logica nei sistemi di risoluzione personalizzati è spesso specifica di una particolare tabella. Se la tabella utilizzata nell'articolo viene modificata dopo la creazione del sistema, ad esempio rinominando la colonna utilizzata nella risoluzione dei conflitti, potrebbe essere necessario modificare e ricompilare il sistema di risoluzione personalizzato.

Per specificare un risolutore personalizzato, vedere Specifica di un Risolutore di Articoli di Merge.