File Leggimi relativo all'esempio Sales Orders per la replica di tipo merge

Questo esempio funziona solo con SQL Server 2005 e SQL Server 2008. Non funzionerà con le versioni di SQL Server precedenti a SQL Server 2005.

Questo file Leggimi illustra come installare ed eseguire l'esempio Sales Orders e fornisce informazioni sui problemi noti relativi all'esempio.

Scenario

Questo esempio illustra una topologia di replica di tipo merge per il recapito dei dati agli utenti mobili e le funzionalità di programmabilità della replica di tipo merge in SQL Server. L'esempio è un'applicazione basata su Windows Forms che utilizza tecnologie di accesso ai dati Microsoft standard e la replica di tipo merge per consentire a un venditore di mantenere i propri dati locali eseguendo periodicamente la sincronizzazione con i dati nel computer di casa. Questo esempio è supportato per i Sottoscrittori con qualsiasi edizione di SQL Server. La pubblicazione supporta inoltre i Sottoscrittori SQL Server Compact 3.5 SP1. Per ulteriori informazioni su questo scenario di esempio, vedere Scenario di esempio Sales Orders.

Linguaggi

  • C#
  • Transact-SQL

Funzionalità

L'esempio Sales Orders illustra le funzionalità seguenti della replica di tipo merge:

  • Oggetti RMO (Replication Management Objects).
  • Filtri di riga con parametri.
  • Partizioni pre-calcolate.
  • Snapshot partizionato su richiesta del client.
  • Ottimizzazioni delle prestazioni basate sui tipi di articolo.
  • Sottoscrittori di SQL Server Compact 3.5 SP1 e SQL Server Express.
  • Gestione automatica dell'intervallo di valori Identity.
  • Gestori della logica di business.
  • Sincronizzazione Web (facoltativa).

Per ulteriori informazioni su come queste funzionalità di replica vengono illustrate nell'esempio, vedere Dettagli di implementazione dell'esempio Sales Orders.

Prerequisiti

Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:

  • SQL Server 2005 o versione successiva, inclusi i componenti facoltativi seguenti:
    • Servizi Motore di database di SQL Server (inclusa la replica)
    • Strumenti client
    • Database OLTP di esempio AdventureWorks, Questo database di esempio è disponibile nella pagina Microsoft SQL Server Samples and Community Projects del sito Web CodePlex.
    • Esempi di SQL Server. Questi esempi sono disponibili nella pagina Microsoft SQL Server Samples and Community Projects del sito Web CodePlex. Per ulteriori informazioni, vedere Considerazioni per l'installazione di esempi e di database di esempio di SQL Server.
  • .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Per ulteriori informazioni, vedere Installazione della documentazione di .NET Framework.

Autorizzazioni necessarie

Le autorizzazioni necessarie per configurare ed eseguire l'esempio Sales Orders si basano sui requisiti di protezione della replica e sono le seguenti:

  • Per eseguire InstallSalesOrdersSample.bat, che configura la replica, crea la pubblicazione AdvWorksSalesOrders e genera lo snapshot iniziale, l'account di Windows deve essere membro del ruolo predefinito del server sysadmin nel server di pubblicazione.

  • L'esempio Sales Orders esegue diverse attività di replica e di Motore di database, incluse la creazione del database AdventureWorksLocal, la creazione della sottoscrizione locale e l'esecuzione dell'agente di merge per inizializzare, reinizializzare o sincronizzare la sottoscrizione. Affinché l'esecuzione del file eseguibile dell'esempio (SalesOrders.exe) sul Sottoscrittore abbia esito positivo, l'account di Windows deve disporre di autorizzazioni CREATE DATABASE sul Sottoscrittore.

    Nota

    Se sono disponibili una sottoscrizione e un database locale, l'account di Windows deve essere membro del ruolo predefinito del database db_owner nel database AdventureWorksLocal nel Sottoscrittore per eseguire l'applicazione.

  • Per inizializzare la sottoscrizione e eseguire la sincronizzazione con il server di pubblicazione, l'account di Windows utilizzato per connettersi a quest'ultimo, oppure al server Web se si utilizza la sincronizzazione Web, deve soddisfare i requisiti seguenti:

    • Disporre di un account di accesso valido al server di pubblicazione associato all'utente nel database di pubblicazione.
    • Disporre di un account di accesso valido al server di distribuzione associato all'utente nel database di distribuzione (dell'utente guest).
    • Essere membro dell'elenco di accesso alla pubblicazione AdvWorksSalesOrders.

Generazione e configurazione dell'esempio

Per generare il progetto di esempio e configurare la topologia di replica, è necessario eseguire le operazioni seguenti:

  • Eseguire lo script di installazione della replica sul server di pubblicazione.
  • (Facoltativo) Configurare il server Internet Information Services (IIS) per il supporto della sincronizzazione Web per la replica di tipo merge. In caso contrario, non sarà possibile utilizzare la funzionalità di sincronizzazione Web dell'esempio.
  • Modificare le impostazioni di configurazione nel file app.config dell'esempio sul Sottoscrittore.
  • Generare l'esempio tramite Visual Studio 2005 o .NET Framework 2.0 SDK nel Sottoscrittore.
  • Salvare una copia dell'assembly BusinessLogic.dll nella directory C:\Programmi\Microsoft SQL Server\100\COM nel Sottoscrittore. Se si utilizza la sincronizzazione Web, è inoltre necessario salvare una copia di BusinessLogic.dll nella directory C:\Programmi\Microsoft SQL Server\100\COM nel server Web.

Per configurare l'esempio Sales Orders sul server di pubblicazione

  1. Verificare che il database di esempio AdventureWorks sia installato e collegato. Per ulteriori informazioni, vedere Considerazioni per l'installazione di esempi e di database di esempio di SQL Server.

  2. Verificare che gli esempi del Motore di database di SQL Server siano stati installati. Per ulteriori informazioni, vedere Considerazioni per l'installazione di esempi e di database di esempio di SQL Server.

  3. Verificare che SQL Server Agent sia in esecuzione. È possibile avviare il servizio o visualizzarne lo stato in Esplora oggetti in SQL Server Management Studio.

  4. Passare alla cartella di installazione degli script dell'esempio Sales Order. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts.

  5. (Facoltativo) Configurare SSL (Secure Sockets Layer) sul server di pubblicazione o sul server utilizzato per la sincronizzazione Web. SSL è necessario per la comunicazione tra il server IIS e i Sottoscrittori. Per configurare SSL, specificare un certificato per il server IIS.

  6. Eseguire InstallSalesOrdersSample.bat e quando richiesto immettere l'account di accesso (nella forma "DOMAIN\login", rispettando maiuscole e minuscole) e la password per l'account di Windows in cui verrà eseguito il processo dell'agente snapshot. In questo modo viene chiamato sqlcmd.exe che esegue CreateAdvWorksSalesOrdersPublication.sql, che esegue le operazioni seguenti:

    • Controlla che la replica sia configurata sul server locale e, in caso contrario, la configura come server di pubblicazione con server di distribuzione locale utilizzando il database di distribuzione.
    • Elimina e ricrea le stored procedure e le funzioni definite dall'utente utilizzate per l'accesso ai dati sul client.
    • Elimina e ricrea la pubblicazione AdvWorksSalesOrders.
    • Aggiunge articoli alla pubblicazione.
    • Registra il gestore della logica di business sul server di distribuzione.
    • Avvia il processo dell'agente snapshot per la generazione dello snapshot iniziale.

    Il file batch può inoltre configurare automaticamente una directory virtuale sul server di pubblicazione per il supporto della sincronizzazione Web. Se si sceglie di non configurare la directory virtuale sul server di pubblicazione durante l'installazione, oppure si intende utilizzare un server Web distinto, è necessario eseguire la procedura di configurazione guidata della sincronizzazione Web prima di utilizzare le funzionalità di sincronizzazione Web dell'esempio.

  7. (Facoltativo) Eseguire la procedura di configurazione guidata della sincronizzazione Web per configurare un server IIS per il supporto della sincronizzazione Web. Ignorare questo passaggio se InstallSalesOrdersSample.bat ha creato la directory virtuale o se non si desidera utilizzare la sincronizzazione Web. Per istruzioni dettagliate sull'utilizzo di questa procedura guidata, vedere How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio).

  8. Prima di continuare, verificare che il processo dell'agente snapshot per la pubblicazione AdvWorksSalesOrders sia completato. È possibile visualizzare lo stato del processo in Monitoraggio replica. Per informazioni sull'utilizzo di Monitoraggio replica per la visualizzazione dello stato di un processo dell'agente snapshot, vedere l'argomento How to: View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor) nella documentazione in linea di SQL Server.

Per generare e configurare l'esempio Sales Orders sul Sottoscrittore

  1. Al prompt dei comandi passare alla directory di installazione degli esempi di SQL Server. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\100\Samples\.

  2. Eseguire il comando seguente al prompt dei comandi .NET Framework o Microsoft Visual Studio 2005:

    sn -k SampleKey.snk

    Nota

    Se la chiave è stata creata in precedenza per un altro esempio, è possibile ignorare questo passaggio.

  3. Passare al percorso di installazione della versione Microsoft Visual C# della soluzione di esempio Sales Orders. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\CS.

  4. Aprire il file della soluzione SalesOrders.sln in Visual Studio 2005.

  5. Generare il progetto.

  6. Nella cartella di output del progetto modificare il file SalesOrders.exe.config cambiando quanto segue:

    • Sostituire il valore della chiave del Sottoscrittore con il nome del server locale.
    • Sostituire il valore della chiave del server di pubblicazione con il nome del server configurato in precedenza come server di pubblicazione.
    • (Facoltativo) Sostituire il valore della chiave WebSynchronizationUrl quando ci si connette al server di pubblicazione mediante la sincronizzazione Web. Questa operazione può essere eseguita anche in fase di esecuzione.
    • (Facoltativo) Utilizzare la chiave SyncWhenConnectedInterval per impostare l'intervallo tra le sincronizzazioni, in secondi, quando si utilizza la funzionalità di sincronizzazione durante la connessione.

    Nota

    La replica non supporta localhost come nome di server.

  7. Salvare una copia dell'assembly BusinessLogic.dll nella directory C:\Programmi\Microsoft SQL Server\100\COM.

  8. (Facoltativo) Se si utilizza la sincronizzazione Web, salvare una copia dell'assembly BusinessLogic.dll nella directory C:\Programmi\Microsoft SQL Server\100\COM nel server Web.

Esecuzione dell'esempio

Per eseguire l'esempio Sales Orders e sincronizzare i dati

  1. Verificare che le connessioni remote siano abilitate nel server di pubblicazione e nel Sottoscrittore (TCP/IP o named pipe) e che il servizio SQL Server Agent sia in esecuzione.

  2. (Facoltativo) Testare la connessione per la sincronizzazione Web nel Sottoscrittore connettendosi al server Web in modalità diagnostica in base a quanto indicato nella sezione relativa alla configurazione dei certificati client nel Sottoscrittore in How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming).

    Nota

    Se quando si utilizza la sincronizzazione Web si verifica un errore HTTP, aprire Internet Explorer, scegliere Opzioni Internet dal menu Strumenti, selezionare la scheda Connessioni e quindi fare clic su Impostazioni LAN. Verificare che la casella di controllo Rileva automaticamente impostazioni sia deselezionata.

  3. Avviare SalesOrders.exe da Visual Studio 2005 o dal prompt dei comandi. La prima volta che si esegue l'applicazione vengono creati la sottoscrizione e il database di sottoscrizione e viene avviato l'agente di merge per inizializzare la sottoscrizione.

  4. Dopo l'inizializzazione dei dati della sottoscrizione, viene caricato il form Sales Orders in cui è visualizzato l'elenco degli ordini esistenti per il venditore "adventure-works\garrett1".

  5. Mediante il form Sales Orders è possibile apportare le modifiche seguenti ai dati di vendita:

    • Modificare le informazioni di un ordine di vendita.
    • Aggiungere un nuovo articolo a un ordine di vendita.
    • Eliminare un articolo da un ordine di vendita.
    • Modificare la quantità ordinata di un articolo in un ordine di vendita.
  6. Scegliere un metodo di sincronizzazione dal menu Synchronize per sincronizzare la sottoscrizione.

  7. (Facoltativo) Selezionare Synchronize When Connected per sincronizzare automaticamente la sottoscrizione. Impostare l'intervallo di sincronizzazione per la sincronizzazione in background tramite la chiave SyncWhenConnectedInterval nel file app.config.

    Nota

    La funzionalità Synchronize When Connected non è disponibile in Microsoft Windows 2000. Per ulteriori informazioni, vedere Dettagli di implementazione dell'esempio Sales Orders.

Per utilizzare le opzioni di sincronizzazione avanzata dell'esempio Sales Orders

  1. Scegliere Advanced dal menu Synchronize e quindi:

    • (Facoltativo) Scegliere un'opzione di reinizializzazione per reinizializzare la sottoscrizione.

    • (Facoltativo) Scegliere Web Synchronization Options e specificare l'URL e le credenziali per l'autenticazione Windows utilizzati per l'accesso al server Web su una connessione HTTPS protetta. Per utilizzare questa opzione, è necessario che sia stato configurato un server IIS per la sincronizzazione Web.

      Nota

      La sincronizzazione di solo caricamento o di solo download non è supportata dalla funzionalità di sincronizzazione Web. Se la sincronizzazione Web è attivata, l'opzione di menu Only Upload Data non è disponibile.

    • (Facoltativo) Scegliere Get Subscription Status per visualizzare i risultati delle sessioni più recenti dell'agente di merge.

Rimozione dell'esempio

Eseguire la procedura seguente per rimuovere l'esempio Sales Orders.

Per eliminare solo la sottoscrizione

  1. Nel Sottoscrittore eseguire lo script Transact-SQL seguente per eliminare la sottoscrizione pull.

  2. Nel server di pubblicazione eseguire lo script Transact-SQL seguente per annullare la registrazione della sottoscrizione pull.

Per rimuovere l'esempio Sales Orders

  1. Sul server di pubblicazione passare alla cartella di installazione degli script dell'esempio Sales Order. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts.

  2. Eseguire il file batch RemoveSalesOrdersSample.bat.

  3. Quando richiesto, digitare "Y" e premere INVIO per rimuovere tutti gli oggetti di replica sul server di pubblicazione, rimuovere tutti gli oggetti di replica nel database di sottoscrizione e disinstallare la pubblicazione e la distribuzione sul server di pubblicazione.

    Importante

    Quando si utilizza questo script, verrà rimossa l'intera infrastruttura di replica. Se sono state create altre pubblicazioni che utilizzano questo server di pubblicazione o di distribuzione, non eseguire DropAdvWorksSalesOrdersPublication.sql. È consigliabile infatti rimuovere manualmente la pubblicazione AdvWorksSalesOrders. Per ulteriori informazioni, vedere How to: Delete a Publication (SQL Server Management Studio) o Procedura: Eliminazione di una pubblicazione (programmazione Transact-SQL della replica) nella documentazione in linea di SQL Server.

  4. Nel database AdventureWorksLocal sul Sottoscrittore eseguire sp_removedbreplication (Transact-SQL).

  5. Modificare il contesto del database sul database master ed eseguire DROP DATABASE AdventureWorksLocal.

Commenti

Gli esempi vengono offerti esclusivamente a scopo didattico. Non sono progettati per l'utilizzo in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non fornisce servizi di supporto tecnico per questi esempi. Le applicazioni e gli assembly di esempio non devono essere connessi o utilizzati con il database di SQL Server o il server di report in un ambiente di produzione senza l'autorizzazione dell'amministratore di sistema.

Vedere anche

Concetti

Esempi (Replica)

Altre risorse

Concetti di base relativi alla programmazione della replica
Centro informazioni per sviluppatori (Replica)

Guida e informazioni

Assistenza su SQL Server 2008