Vorgehensweise: Konfigurieren von Veröffentlichung und Verteilung (RMO-Programmierung)

Sie können die Veröffentlichung und Verteilung mithilfe von Replikationsverwaltungsobjekten (ROM) programmgesteuert konfigurieren.

So konfigurieren Sie Veröffentlichung und Verteilung auf einem einzelnen Server

  1. Erstellen Sie eine Verbindung mit dem Server, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie ServerConnection von Schritt 1.

  3. Erstellen Sie eine Instanz der DistributionDatabase-Klasse.

  4. Legen Sie die Name-Eigenschaft auf den Datenbanknamen fest, und legen Sie die ConnectionContext-Eigenschaft auf die ServerConnection aus Schritt 1 fest.

  5. Installieren Sie den Verteiler, indem Sie die InstallDistributor-Methode aufrufen. Übergeben Sie das MergePartition-Objekt aus Schritt 3.

  6. Erstellen Sie eine Instanz der DistributionPublisher-Klasse.

  7. Legen Sie dann die folgenden Eigenschaften von DistributionPublisher fest:

  8. Rufen Sie die Create-Methode auf.

So konfigurieren Sie Veröffentlichung und Verteiler mit einem Remoteverteiler

  1. Erstellen Sie mithilfe der ServerConnection-Klasse eine Verbindung zum Remoteverteilerserver.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie ServerConnection aus Schritt 1.

  3. Erstellen Sie eine Instanz der DistributionDatabase-Klasse.

  4. Legen Sie die Name-Eigenschaft auf den Datenbanknamen fest, und legen Sie die ConnectionContext-Eigenschaft auf die ServerConnection aus Schritt 1 fest.

  5. Installieren Sie den Verteiler, indem Sie die InstallDistributor-Methode aufrufen. Geben Sie ein sicheres Kennwort (das vom Verteiler für den Verbindungsaufbau mit dem Remoteverteiler verwendet wird) und das DistributionDatabase-Objekt aus Schritt 3 an. Weitere Informationen finden Sie unter Schützen des Verteilers.

    SicherheitshinweisSicherheitshinweis

    Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit einzugeben. Wenn Sie Anmeldeinformationen speichern müssen, verwenden Sie die Kryptografiedienste von Microsoft Windows .NET Framework.

  6. Erstellen Sie eine Instanz der DistributionPublisher-Klasse.

  7. Legen Sie dann die folgenden Eigenschaften von DistributionPublisher fest:

  8. Rufen Sie die Create-Methode auf.

  9. Erstellen Sie mithilfe der ServerConnection-Klasse eine Verbindung zum lokalen Verlegerserver.

  10. Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie ServerConnection aus Schritt 9.

  11. Rufen Sie die InstallDistributor-Methode auf. Übergeben Sie den Namen des Remoteverteilers und das Kennwort des Remoteverteilers, der in Schritt 5 angegeben wurde.

    SicherheitshinweisSicherheitshinweis

    Benutzer sollten nach Möglichkeit dazu aufgefordert werden, Anmeldeinformationen zur Laufzeit einzugeben. Wenn Sie Anmeldeinformationen speichern müssen, verwenden Sie die Kryptografiedienste von Microsoft Windows .NET Framework.

Beispiel

Im folgenden Beispiel wird ein Server als Verleger mit einem lokalen Verteiler konfiguriert.

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

            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 = "AdventureWorks"

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