Conflitti nella replica di tipo merge avanzata - Scegliere un sistema di risoluzioneAdvanced Merge Replication Conflict - Choose a Resolver

Quando si sceglie un sistema di risoluzione, considerare l'importanza della risoluzione dei conflitti nell'applicazione e se è possibile utilizzare il sistema di risoluzione dei conflitti predefinito basato sulle priorità oppure se è necessario utilizzare un sistema di risoluzione dell'articolo.When choosing a resolver, consider the importance of conflict resolution in your application and whether you can use the default priority-based conflict resolver or need to use an article resolver.

Se i dati sono suddivisi in partizioni che non vengono modificate da più utenti e la topologia di replica è relativamente semplice, ovvero costituita da un server di pubblicazione e pochi Sottoscrittori, i conflitti dovrebbero essere pochi o inesistenti.If your data is partitioned without multiple users writing to the same partitions, and your replication topology is relatively basic (one Publisher and a few Subscribers), conflicts should be rare or nonexistent. In questi ambienti non è in genere necessario implementare una strategia di risoluzione dei conflitti complessa.In these environments, you probably do not need a complex conflict resolution strategy. È consigliabile adottare una strategia basata sulle impostazioni predefinite per la risoluzione dei conflitti e che preveda l'utilizzo di sottoscrizioni client e di criteri di priorità della prima modifica.A strategy using the default settings for conflict resolution, using client subscriptions and a first change in wins policy, is recommended. Se la topologia è più complessa, ad esempio se prevede l'utilizzo di Sottoscrittori di ripubblicazione, potrebbero risultare più appropriate le sottoscrizioni server con priorità specifiche.If the topology is more complex (using republishing Subscribers, for example), server subscriptions with specific priorities might be more appropriate.

È consigliabile adottare un sistema di risoluzione dell'articolo se l'azienda richiede una soluzione più efficace rispetto al sistema di risoluzione predefinito.An article resolver is recommended if your business needs require a more finely tuned solution than is available with the default resolver. Se si decide di utilizzare un sistema di risoluzione dell'articolo, è consigliabile utilizzare un gestore della logica di business.If you choose to use an article resolver, it is recommended that you use a business logic handler. Per altre informazioni, vedere Eseguire logiche di business durante la sincronizzazione di tipo merge.For more information, see Execute Business Logic During Merge Synchronization.

Infine, la scelta tra l'utilizzo di un sistema di risoluzione predefinito e un sistema di risoluzione dell'articolo dovrebbe basarsi sui dati e sulle necessità dell'applicazione per quanto riguarda la logica di business.Ultimately, choosing whether to use the default resolver or an article resolver should be based on the data and the business logic needs of the application. Si supponga, ad esempio, che gli utenti addetti all'immissione dei dati sulla valutazione dei clienti in un set di tabelle non partizionate in diversi Sottoscrittori abbiano qualifiche diverse, ad esempio responsabili di filiale, responsabili di settore, personale addetto alle vendite, e che la qualifica lavorativa determini la priorità da assegnare ai dati.For example, consider employees who enter customer ranking data into a set of non-partitioned tables at different Subscribers; the employees span various job categories (branch managers, line managers, sales staff), and job category determines whose data should be given priority. In questo caso è possibile compilare un sistema di risoluzione dell'articolo in cui vengano utilizzati i dati relativi alle qualifiche professionali dell'articolo per stabilire l'elemento che prevale in caso di conflitto.In this case, an article resolver can be built that uses job category data from the article to determine the winner if a conflict occurs.

Nella tabella seguente vengono descritti i fattori che è necessario prendere in considerazione quando si implementa una strategia di risoluzione dei conflitti, se si prevede che i conflitti si verifichino con una certa frequenza.If conflicts are likely to occur with some frequency, here are the most important decisions you should consider when implementing a conflict resolution strategy.

Problema relativo alla risoluzione dei conflittiConflict resolution issue ConsiglioRecommendation
Categorie diverse di utenti richiedono valori di priorità diversi.Different categories of users require different priority values. Utilizzare il sistema di risoluzione predefinito e creare sottoscrizioni server con diversi valori di priorità.Use the default resolver and create server subscriptions with different priority values.

OppureOr

Utilizzare un sistema di risoluzione dell'articolo in grado di riconoscere una colonna con valori di autorità nell'articolo per semplificare la risoluzione del conflitto.Use an article resolver that recognizes an authority value column in the article to help resolve a conflict.
Si desidera impostare la priorità della prima modifica eseguita.First change in wins conflict solution wanted. Utilizzare il sistema di risoluzione predefinito e creare sottoscrizioni client.Use the default resolver and create client subscriptions.
Le modifiche apportate alla stessa riga di dati da più utenti sono accettabili a condizione che non vengano apportate modifiche in conflitto nella stessa colonna.Multiple users changing the same data row is acceptable, as long as no conflicting changes are made to the same column. Utilizzare il sistema di risoluzione predefinito o un sistema di risoluzione dell'articolo con il rilevamento a livello di colonna.Use either the default resolver or an article resolver with column-level tracking enabled.
Contrassegnare come conflitto più modifiche a un valore di una riga.Flag multiple changes to any value in a row as a conflict. Utilizzare il sistema di risoluzione predefinito o un sistema di risoluzione dell'articolo con il rilevamento a livello di riga.Use either the default resolver or an article resolver with row-level tracking.
Contrassegnare come conflitto più modifiche a un valore in un record logico.Flag multiple changes to any value in a logical record as a conflict. Utilizzare il sistema di risoluzione predefinito con il rilevamento a livello di record logico. La funzionalità di record logici non supporta i sistemi di risoluzione personalizzati né i gestori della logica di business.Use the default resolver with logical record-level tracking (the logical records feature does not support custom resolvers or business logic handlers).
I dati risultanti dal conflitto devono essere diversi dai dati originali del conflitto.Conflict outcome data needs to be different from original conflict data. Utilizzare un sistema di risoluzione dell'articolo che consenta di calcolare nuovi valori.Use an article resolver that calculates new values.

Vedere ancheSee Also

Rilevamento e risoluzione dei conflitti nei record logici Detecting and Resolving Conflicts in Logical Records
Rilevamento e risoluzione avanzati dei conflitti nella replica di tipo merge Advanced Merge Replication Conflict Detection and Resolution
Ripubblicare i dati Republish Data