Procedura: Configurazione della pubblicazione e della distribuzione (programmazione RMO)

È possibile configurare a livello di programmazione la pubblicazione e la distribuzione della replica utilizzando gli oggetti RMO (Replication Management Objects).

Per configurare la pubblicazione e la distribuzione su un singolo server

  1. Creare una connessione al server tramite la classe ServerConnection.

  2. Creare un'istanza della classe ReplicationServer. Passare il valore di ServerConnection ottenuto al passaggio 1.

  3. Creare un'istanza della classe DistributionDatabase.

  4. Impostare la proprietà Name sul nome del database e la proprietà ConnectionContext sul valore di ServerConnection ottenuto al passaggio 1.

  5. Installare il server di distribuzione chiamando il metodo InstallDistributor. Passare l'oggetto DistributionDatabase ottenuto al passaggio 3.

  6. Creare un'istanza della classe DistributionPublisher.

  7. Impostare le proprietà seguenti di DistributionPublisher:

  8. Chiamare il metodo Create.

Per configurare la pubblicazione e la distribuzione utilizzando un server di distribuzione remoto

  1. Creare una connessione al server di distribuzione remoto tramite la classe ServerConnection.

  2. Creare un'istanza della classe ReplicationServer. Passare il valore di ServerConnection ottenuto al passaggio 1.

  3. Creare un'istanza della classe DistributionDatabase.

  4. Impostare la proprietà Name sul nome del database e la proprietà ConnectionContext sul valore di ServerConnection ottenuto al passaggio 1.

  5. Installare il server di distribuzione chiamando il metodo InstallDistributor. Specificare una password sicura (utilizzata dal server di pubblicazione per la connessione al server di distribuzione remoto) e l'oggetto DistributionDatabase ottenuto al passaggio 3. Per ulteriori informazioni, vedere Protezione del server di distribuzione.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, richiedere agli utenti di immettere le credenziali di protezione in fase di esecuzione. Se è necessario archiviare le credenziali, utilizzare i servizi di crittografia offerti da Microsoft Windows .NET Framework.

  6. Creare un'istanza della classe DistributionPublisher.

  7. Impostare le proprietà seguenti di DistributionPublisher:

  8. Chiamare il metodo Create.

  9. Creare una connessione al server di pubblicazione locale tramite la classe ServerConnection.

  10. Creare un'istanza della classe ReplicationServer. Passare il valore di ServerConnection ottenuto al passaggio 9.

  11. Chiamare il metodo InstallDistributor. Passare il nome e la password del server di distribuzione remoto specificati al passaggio 5.

    Nota sulla sicurezzaNota sulla sicurezza

    Se possibile, richiedere agli utenti di immettere le credenziali di protezione in fase di esecuzione. Se è necessario archiviare le credenziali, utilizzare i servizi di crittografia offerti da Windows .NET Framework.

Esempio

Nell'esempio seguente un server viene configurato come server di pubblicazione con un server di distribuzione locale.

            // Set the server and database names
            string distributionDbName = "distribution";
            string publisherName = publisherInstance;
            string publicationDbName = "AdventureWorks2008R2";

            DistributionDatabase distributionDb;
            ReplicationServer distributor;
            DistributionPublisher publisher;
            ReplicationDatabase publicationDb;

            // Create a connection to the server using Windows Authentication.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the server acting as the Distributor 
                // and local Publisher.
                conn.Connect();

                // Define the distribution database at the Distributor,
                // but do not create it now.
                distributionDb = new DistributionDatabase(distributionDbName, conn);
                distributionDb.MaxDistributionRetention = 96;
                distributionDb.HistoryRetention = 120;

                // Set the Distributor properties and install the Distributor.
                // This also creates the specified distribution database.
                distributor = new ReplicationServer(conn);
                distributor.InstallDistributor((string)null, distributionDb);

                // Set the Publisher properties and install the Publisher.
                publisher = new DistributionPublisher(publisherName, conn);
                publisher.DistributionDatabase = distributionDb.Name;
                publisher.WorkingDirectory = @"\\" + publisherName + @"\repldata";
                publisher.PublisherSecurity.WindowsAuthentication = true;
                publisher.Create();

                // Enable AdventureWorks as a publication database.
                publicationDb = new ReplicationDatabase(publicationDbName, conn);

                publicationDb.EnabledTransPublishing = true;
                publicationDb.EnabledMergePublishing = true;
            }
            catch (Exception ex)
            {
                // Implement appropriate error handling here.
                throw new ApplicationException("An error occured when installing distribution and publishing.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the server and database names
Dim distributionDbName As String = "distribution"
Dim publisherName As String = publisherInstance
Dim publicationDbName As String = "AdventureWorks2008R2"

Dim distributionDb As DistributionDatabase
Dim distributor As ReplicationServer
Dim publisher As DistributionPublisher
Dim publicationDb As ReplicationDatabase

' Create a connection to the server using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the server acting as the Distributor 
    ' and local Publisher.
    conn.Connect()

    ' Define the distribution database at the Distributor,
    ' but do not create it now.
    distributionDb = New DistributionDatabase(distributionDbName, conn)
    distributionDb.MaxDistributionRetention = 96
    distributionDb.HistoryRetention = 120

    ' Set the Distributor properties and install the Distributor.
    ' This also creates the specified distribution database.
    distributor = New ReplicationServer(conn)
    distributor.InstallDistributor((CType(Nothing, String)), distributionDb)

    ' Set the Publisher properties and install the Publisher.
    publisher = New DistributionPublisher(publisherName, conn)
    publisher.DistributionDatabase = distributionDb.Name
    publisher.WorkingDirectory = "\\" + publisherName + "\repldata"
    publisher.PublisherSecurity.WindowsAuthentication = True
    publisher.Create()

    ' Enable AdventureWorks as a publication database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    publicationDb.EnabledTransPublishing = True
    publicationDb.EnabledMergePublishing = True

Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("An error occured when installing distribution and publishing.", ex)

Finally
    conn.Disconnect()

End Try