Rilevamento e risoluzione di conflitti di replica
Quando viene eseguita una sincronizzazione dopo quella iniziale, le modifiche apportate ai dati su un Sottoscrittore potrebbero essere in conflitto con quelle apportate su un altro Sottoscrittore o sul server di pubblicazione. Quando si crea la pubblicazione, è quindi necessario assegnare un sistema di risoluzione per gestire questi conflitti.
Eliminazione dei conflitti
Quando si esegue la sincronizzazione, l'agente di merge in esecuzione sul server di pubblicazione rileva gli eventuali conflitti tra dati e quindi determina quali dati accettare e propagare agli altri siti in base al sistema di risoluzione associato alla pubblicazione.
Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) supporta il rilevamento a livello di riga e a livello di colonna quando si esegue la sincronizzazione con i server di pubblicazione SQL Server 2005 e SQL Server 2008.
Nota
La sincronizzazione con SQL Server 2000 non è supportata in SQL Server Compact 3.5.
Utilizzo di sistemi di risoluzione
Dopo il rilevamento di un conflitto, l'agente di merge avvia il sistema di risoluzione dei conflitti selezionato per l'articolo. Può trattarsi del sistema di risoluzione predefinito, di uno degli altri sistemi di risoluzione disponibili o di un sistema di risoluzione personalizzato. Le modifiche accettate vengono scelte in base alle regole del risolutore di conflitti. I conflitti del Sottoscrittore SQL Server Compact 3.5 vengono sempre rilevati, risolti e registrati nel server di pubblicazione.
Importante
L'accesso multiutente consente le modifiche ai dati durante la sincronizzazione. Queste modifiche possono provocare un conflitto lato client, che viene rilevato, ma non risolto, nel Sottoscrittore. Il conflitto verrà rilevato nuovamente e risolto nel server di pubblicazione durante la sincronizzazione successiva. Per ulteriori informazioni, vedere Accesso multiutente e sincronizzazione.
Per risolvere i conflitti, i sistemi di risoluzione possono utilizzare l'origine della modifica dei dati o il valore di priorità del Sottoscrittore. Il sistema di risoluzione predefinito, ad esempio, segue la regola in base alla quale le modifiche sul Sottoscrittore vengono sempre sovrascritte dalle modifiche sul server di pubblicazione. È possibile scegliere di utilizzare un sistema di risoluzione diverso per dare sempre la priorità alle modifiche sul Sottoscrittore rispetto a quelle sul server di pubblicazione.
Nota
Il valore di priorità dei client di SQL Server Compact 3.5 è sempre 0. Pertanto, un sistema di risoluzione basato su un valore di priorità non concederà la priorità alle modifiche apportate sul dispositivo.
Per ulteriori informazioni sul rilevamento e sulla risoluzione di conflitti, vedere "Rilevamento e risoluzione di conflitti tra repliche di tipo merge" nella documentazione in linea di SQL Server.
Nota
Gli strumenti di risoluzione dei conflitti tra repliche di tipo merge basati su stored procedure non sono supportati dalle sottoscrizioni di SQL Server Compact 3.5.
Utilizzo di sistemi di risoluzione personalizzati
I sistemi di risoluzione personalizzati consentono di aggiungere la logica di business alla replica. Un sistema di risoluzione personalizzato è una DLL incorporata nel codice gestito o nativo. Per essere utilizzato, il sistema di risoluzione personalizzato deve essere registrato sul server di pubblicazione e sul server che esegue IIS utilizzando la stored procedure sp_registercustomeresolver. La stored procedure sp_registercustomeresolver include il parametro is_dotnet_assembly , che viene impostato su true per un sistema di risoluzione incorporato nel codice gestito o su false per una DLL nativa.
Importante
Un sistema di risoluzione personalizzato deve essere registrato nel computer che esegue IIS oltre che nel computer che esegue SQL Server.
Vedere anche
Concetti
Utilizzo del rilevamento a livello di riga e a livello di colonna