Condividi tramite


Funzionamento della replica

Il processo di replica di tipo merge in Microsoft SQL Server Compact 3.5 (SQL Server Compact 3.5) viene completato nel modo seguente:

  1. I dati vengono pubblicati in SQL Server.
  2. Vengono create le sottoscrizioni delle pubblicazioni.
  3. Vengono aggiornati i dati nel Sottoscrittore.
  4. I dati vengono sincronizzati.

Nella tabella seguente vengono fornite le definizioni di alcuni termini utilizzati in questa sezione.

Termine Definizione

Articolo

Tabella di database abilitata per la replica.

Publication

Insieme di articoli.

Partizione

Insieme specifico di righe o colonne in una pubblicazione.

Publisher

Database che rende disponibile una pubblicazione tramite la replica.

Subscriber

Database che riceve i dati replicati ed è in grado di passare le modifiche ai dati al server di pubblicazione.

Sottoscrizione

Richiesta di una copia della pubblicazione, che deve essere recapitata al Sottoscrittore.

Database di sottoscrizione

Database che riceve gli articoli pubblicati da un server di pubblicazione.

Pubblicazione dei dati

Le pubblicazioni specificano i dati da pubblicare e vengono in genere personalizzate in base ai diversi utenti o gruppi di utenti. Talvolta, tutti gli utenti devono disporre degli stessi dati. È ad esempio possibile che tutti i dipendenti necessitino di una copia dell'elenco dei dipendenti aziendali. In altri casi, gruppi diversi di utenti devono disporre di partizioni diverse dei dati. È ad esempio possibile che per gli addetti alle vendite sia necessario un insieme di dati, mentre per i responsabili del supporto tecnico è necessario un insieme diverso. I singoli utenti, inoltre, potrebbero necessitare di dati filtrati in base alle specifiche esigenze. A un addetto alle vendite, ad esempio, potrebbero interessare soltanto i dati relativi ai propri clienti.

Al momento della creazione della pubblicazione, vengono specificati gli articoli in essa contenuti. Sebbene le pubblicazioni di SQL Server possano contenere altri oggetti di database, ad esempio stored procedure, viste e funzioni definite dall'utente, la replica di SQL Server Compact 3.5 ignora tali oggetti e include esclusivamente le tabelle nella sottoscrizione di SQL Server Compact 3.5. È possibile specificare le righe e le colonne incluse nell'articolo tramite filtri. Per ulteriori informazioni, vedere "Replica" nella documentazione in linea di SQL Server.

Sottoscrizione delle pubblicazioni

Dopo la definizione della pubblicazione, un'applicazione esegue la relativa sottoscrizione a livello di programmazione sul dispositivo, chiamando i metodi forniti dall'oggetto Replication di SQL Server Compact 3.5 o dalla classe SqlCeReplication oppure utilizzando la Creazione guidata nuova sottoscrizione di SQL Server Management Studio. Quando viene creata la sottoscrizione, lo snapshot iniziale del server di distribuzione viene applicato al database di sottoscrizione nel Sottoscrittore.

Aggiornamento dei dati nel Sottoscrittore

È probabile che l'applicazione aggiorni il database di sottoscrizione. La replica di tipo merge consente l'aggiornamento autonomo di ogni database di sottoscrizione. Gli aggiornamenti possono essere eseguiti indipendentemente dalla connessione del dispositivo alla rete. Ogni database di SQL Server Compact 3.5 utilizza il rilevamento delle modifiche per tenere traccia delle istruzioni INSERT, UPDATE e DELETE eseguite nel Sottoscrittore SQL Server Compact 3.5. Il rilevamento può essere eseguito sia a livello di riga che a livello di colonna.

Sincronizzazione dei dati

Gli utenti in genere connettono il dispositivo alla rete in modo intermittente. Queste connessioni consentono all'applicazione di sincronizzare le modifiche apportate nel Sottoscrittore con le modifiche apportate nel server di pubblicazione. La sincronizzazione viene avviata dall'applicazione chiamando i metodi forniti dall'oggetto Replication o dalla classe SqlCeReplication. Il processo di sincronizzazione è articolato in quattro passaggi.

  1. Estrarre le modifiche e creare il file di messaggio di input.
    Agente client di SQL Server Compact 3.5 estrae tutti i record inseriti, aggiornati ed eliminati nel database di sottoscrizione nel Sottoscrittore SQL Server Compact 3.5 e li propaga ad Agente server di SQL Server Compact 3.5 tramite HTTP. Agente server di SQL Server Compact 3.5 crea un nuovo file di messaggio di input in cui scrive le modifiche di inserimento, aggiornamento ed eliminazione inviate da Agente client di SQL Server Compact 3.5.

  2. Eseguire il processo di Riconciliatore di SQL Server e applicare le modifiche al database di pubblicazione.
    Dopo la scrittura di tutte le richieste nel file di messaggio di input, Agente server di SQL Server Compact 3.5 avvia Riconciliatore di SQL Server. Riconciliatore di SQL Server carica Provider replica di SQL Server Compact 3.5, che legge il file di messaggio di input e segnala a Riconciliatore di SQL Server le modifiche apportate al database di sottoscrizione di SQL Server Compact 3.5 che devono essere applicate al database di pubblicazione nel server di pubblicazione. Durante l'elaborazione, Riconciliatore di SQL Server rileva e risolve i conflitti. Si verifica un conflitto quando lo stesso record viene aggiornato da più Sottoscrittori o server di pubblicazione.

    Nota

    Il Riconciliatore di SQL Server risolve i conflitti mediante appositi sistemi di risoluzione. È possibile utilizzare i sistemi di risoluzione dei conflitti disponibili in SQL Server per implementare la risoluzione semplice dei conflitti per le applicazioni di replica di SQL Server Compact 3.5 oppure creare sistemi di risoluzione dei conflitti personalizzati per implementare soluzioni più avanzate. Per ulteriori informazioni, vedere Rilevamento e risoluzione di conflitti di replica.

  3. Creare il file di messaggio di output.
    Riconciliatore di SQL Server segnala a Provider replica di SQL Server Compact 3.5 le modifiche apportate nel server di pubblicazione che devono essere applicate al database di sottoscrizione sul dispositivo. Provider replica di SQL Server Compact 3.5 scrive le modifiche in un file di messaggio di output sul server che esegue IIS.

  4. Leggere il file di messaggio di output e applicare le modifiche al database di sottoscrizione di SQL Server Compact 3.5.
    Al termine del processo di Riconciliatore di SQL Server, Agente server di SQL Server Compact 3.5 individua il file di messaggio di output creato da Provider replica di SQL Server Compact 3.5. Questo file contiene le modifiche apportate nel server di pubblicazione che devono essere applicate al database di sottoscrizione sul dispositivo. Agente server di SQL Server Compact 3.5 legge il file di messaggio di output e lo trasmette ad Agente client di SQL Server Compact 3.5 sul dispositivo. Agente client di SQL Server Compact 3.5 applica le modifiche del file di messaggio di output al database di sottoscrizione di SQL Server Compact 3.5.

    Nota

    L'Agente client di SQL Server Compact 3.5 elabora i file messaggi di input e di output in blocchi logici, nel corso della lettura o dell'applicazione delle modifiche al database di sottoscrizione nel dispositivo. Elaborando ogni file di messaggio in questo modo, Agente client di SQL Server Compact 3.5 evita la scrittura dell'intero file di messaggio sul dispositivo, risparmiando spazio di archiviazione sul dispositivo.

Dopo che tutte le modifiche sono state incorporate da Agente client di SQL Server Compact 3.5 nel database di sottoscrizione sul dispositivo e tutti i conflitti sono stati risolti, vengono completate la sincronizzazione dei database di pubblicazione e sottoscrizione e la convergenza dei dati. Poiché possono essere continuamente eseguiti aggiornamenti, i valori di dati nel server di pubblicazione e nei Sottoscrittori potrebbero non corrispondere.

Importante

Non è possibile avviare due processi di replica di tipo merge contemporaneamente sullo stesso database.