Conflitti nella replica di tipo merge avanzata - Sistemi di risoluzione personalizzati basati su COMAdvanced Merge Replication Conflict - COM-Based Custom Resolvers

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.Custom resolvers provide more flexibility than the default resolution mechanism, and they can implement business logic required by applications using the replicated data. 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.A COM-based custom resolver is a dynamic-link library (DLL) that implements the ICustomResolver COM interface, its methods and properties, and other supporting interfaces and type definitions designed specifically for conflict resolution.

Nota

Se possibile, è consigliabile utilizzare un gestore della logica di business anziché un sistema di risoluzione personalizzato basato su COM.It is recommended to use a business logic handler rather than a COM-based custom resolver if possible. Per altre informazioni sui gestori della logica di business, vedere Eseguire logiche di business durante la sincronizzazione di tipo merge.For more information on business logic handlers, see Execute Business Logic During Merge Synchronization.

Per compilare un sistema di risoluzione COM personalizzato, è possibile utilizzare la libreria dei tipi inclusa in replrec.dll. Per impostazione predefinita, questa libreria è installata in C:\Programmi\Microsoft SQL Server\130\C:\Program Files\Microsoft SQL Server\130\COM.To build a custom COM resolver, you can use the type library that is provided in the replrec.dll; by default, this library is installed at C:\Programmi\Microsoft SQL Server\130\C:\Program Files\Microsoft SQL Server\130\COM.

Prima di creare un sistema di risoluzione COM personalizzato, è necessario stabilire i fattori seguenti:Before writing a custom COM resolver, you need to decide:

  • 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.The types of row changes you want to resolve, such as updates, inserts, and deletes, and whether the resolver should be invoked during the upload of merge changes, the download of merge changes, or both. È possibile specificare un tipo di modifica, tutte le modifiche o qualsiasi combinazione di modifiche.You can specify one type of change, all changes, or any combination. Il sistema di risoluzione dei conflitti del processo di merge predefinito gestisce tutti i conflitti non risolti da un sistema di risoluzione personalizzato.The default merge conflict resolver handles any conflicts not covered by a custom resolver.

  • Se utilizzare il rilevamento a livello di colonna per la risoluzione dei conflitti.Whether to use column tracking when resolving the conflict. 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.When column-level tracking is on, only data in those columns where a conflict exists are flagged as a conflict, otherwise the data is merged. I conflitti tuttavia vengono risolti in base alle stesse modalità utilizzate per il rilevamento a livello di riga, ovvero il processo che prevale sovrascrive l'intera riga di dati. I dati tuttavia possono essere una combinazione dei valori del server di pubblicazione e dei Sottoscrittori oppure valori alterati che non provengono né dal server di pubblicazione, né dai Sottoscrittori.However, conflicts are resolved in the same way as row-level tracking: the priority winner overwrites the entire row of data (but the data can be a mix of values from the Publisher, Subscribers, or some altered values that were from neither Publisher nor Subscribers). Per altre informazioni, vedere Detect and Resolve Merge Replication Conflicts.For more information, see Detect and Resolve Merge Replication Conflicts.

    Per implementare un sistema di risoluzione dei conflitti personalizzato basato su COM, vedere Implement a Custom Conflict Resolver for a Merge Article.To implement a COM-based custom conflict resolver, see Implement a Custom Conflict Resolver for a Merge Article.

    Un sistema di risoluzione personalizzato viene specificato per un articolo, non per un'intera pubblicazione.A custom resolver is specified for an article, not an entire publication. Lo stesso sistema può essere utilizzato con più articoli, ma la logica nei sistemi di risoluzione personalizzati è spesso specifica di una particolare tabella.The same resolver can be used with more than one article, but the logic in custom resolvers is often specific to a particular table. 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.If the table used in the article is modified after the resolver is created (for example, renaming the column name that is used in conflict resolution), the custom resolver might need to be modified and recompiled.

    Per specificare un sistema di risoluzione personalizzato, vedere Specify a Merge Article Resolver.To specify a custom resolver, see Specify a Merge Article Resolver.

Vedere ancheSee Also

Advanced Merge Replication Conflict Detection and Resolution Advanced Merge Replication Conflict Detection and Resolution
Microsoft COM-Based Resolvers Microsoft COM-Based Resolvers