Condividi tramite


Applicazione di esempio Sales Orders per la replica di tipo merge

Data aggiornamento: 14 aprile 2006

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 2005. 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 2005. La pubblicazione supporta inoltre i Sottoscrittori SQL Server Compact Edition. Per ulteriori informazioni su questo scenario di esempio, vedere Sales Orders Sample Scenario.

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 Edition ed Express Edition.
  • Gestione automatica dell'intervallo di valori Identity.
  • Gestori della regola business.
  • Sincronizzazione Web (facoltativa).

Per ulteriori informazioni su come queste funzionalità di replica vengono illustrate nell'esempio, vedere Sales Orders Sample Implementation Details.

Prerequisiti

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

  • SQL Server 2005 Service Pack 1 (SP1), inclusi facoltativamente i componenti seguenti:

  • .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Per ulteriori informazioni, vedere Installazione di .NET Framework SDK.

    [!NOTA] Per generare lo snapshot iniziale, è necessario applicare SQL Server 2005 SP1 al server di pubblicazione. Per utilizzare questo esempio su un server di pubblicazione di SQL Server 2005 al quale non è applicato SP1, è innanzitutto necessario eliminare e ricreare il vincolo FK_SalesOrderDetail_SalesOrderHeader_SalesOrderID FOREIGN KEY per la tabella SalesOrderHeader senza la clausola ON DELETE CASCADE.

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\90\COM sul Sottoscrittore. Se si utilizza la sincronizzazione Web, è necessario salvare una copia di BusinessLogic.dll nella directory C:\Programmi\Microsoft SQL Server\90\COM sul server Web.

Per configurare l'esempio Sales Orders sul server di pubblicazione

  1. Verificare che il database di esempio AdventureWorks sia installato e collegato. Se il database non è collegato, vedere Installazione dei database di esempio AdventureWorks e degli esempi nella documentazione in linea di SQL Server.

  2. Verificare che gli esempi del Motore di database di SQL Server siano installati.

    Per ulteriori informazioni, vedere Installazione degli esempi.

  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\90\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 regola 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 Procedura: Configurazione di IIS per la sincronizzazione tramite il Web.

  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 di agente snapshot, vedere l'argomento Procedura: Visualizzazione delle informazioni ed esecuzione di attività relative agli agenti associati a una pubblicazione (Monitoraggio replica) 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 2005. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\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\90\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\90\COM.

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

Esecuzione dell'esempio

Per eseguire l'esempio Sales Orders e sincronizzare i dati

  1. Verificare che le connessioni remote siano attivate sul server di pubblicazione e sul 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 sul Sottoscrittore connettendosi al server Web in modalità diagnostica seguendo le istruzioni riportate nella sezione relativa alla configurazione dei certificati dei client sul 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 modulo Sales Orders in cui è visualizzato l'elenco degli ordini esistenti per il venditore "adventure-works\garrett1".

  5. Mediante il modulo 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 . Per ulteriori informazioni, vedere Sales Orders Sample Implementation Details.

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.

    -- This batch is executed at the Subscriber to remove 
    -- the Sales Orders sample subscription.
    DECLARE @publisher AS sysname;
    
    -- change this value to the name of the Publisher server.
    SET @publisher = N'PUBSERVER'; 
    
    USE [AdventureWorksLocal]
    EXEC sp_dropmergepullsubscription 
      @publisher = @publisher, 
      @publisher_db = N'AdventureWorks',
      @publication = N'AdvWorksSalesOrders';
    GO
    
  2. Nel server di pubblicazione eseguire lo script Transact-SQL seguente per annullare la registrazione della sottoscrizione pull.

    -- This batch is executed at the Publisher to remove 
    -- the Sales Orders sample subscription.
    DECLARE @subscriber AS sysname;
    
    -- change this value to the name of the Subscriber server.
    SET @subscriber = N'SUBSERVER'; 
    
    USE [AdventureWorks]
    EXEC sp_dropmergesubscription 
      @publication = N'AdvWorksSalesOrders', 
      @subscriber = @subscriber, 
      @subscriber_db = N'AdventureWorksLocal';
    GO
    

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\90\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.

    ms160955.note(it-it,SQL.90).gifImportante:
    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 Procedura: Eliminazione di una pubblicazione (SQL Server Management Studio) o How to: Delete a Publication (Replication Transact-SQL Programming) 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 di replica

Altre risorse

Planning for Replication Programming
Centro informazioni per gli sviluppatori di soluzioni di replica

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Contenuto modificato:
  • Aggiornamento dei requisiti per SQL Server 2005.
  • Aggiunta di una nota contenente informazioni su come eseguire l'esempio in un server di pubblicazione di SQL Server 2005.

5 dicembre 2005

Contenuto modificato:
  • Aggiornamento dei passaggi di distribuzione.
  • Aggiornamento delle informazioni per la creazione e la distribuzione della chiave per riflettere gli aggiornamenti all'esempio.