Vorgehensweise: Anzeigen und Ändern von Verleger- und Verteilereigenschaften (RMO-Programmierung)

Sie können mithilfe von Replikationsverwaltungsobjekten (RMO) die Verleger- und Verteilereigenschaften programmgesteuert anzeigen und ändern.

So zeigen Sie die Verteilereigenschaften an oder ändern diese

  1. Erstellen Sie unter Verwendung der ServerConnection-Klasse eine Verbindung mit dem Verteiler.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse. Übergeben Sie das MergePartition-Objekt aus Schritt 1.

  3. (Optional) überprüfen Sie die IsDistributor-Eigenschaft, um sich davon zu überzeugen, dass der aktuell verbundene Server ein Verteiler ist.

  4. Rufen Sie die Load-Methode auf, um die Eigenschaften vom Server abzurufen.

  5. (Optional) Zum Ändern der Eigenschaften legen Sie einen neuen Wert für eine oder mehrere der Verteilereigenschaften fest, die im ReplicationServer-Objekt festgelegt werden können.

  6. (Optional) Wenn die CachePropertyChanges-Eigenschaft des ReplicationServer-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So zeigen Sie Verteilerdatenbankeigenschaften an oder ändern Sie diese Eigenschaften

  1. Erstellen Sie eine Verbindung zum Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der DistributionDatabase-Klasse. Geben Sie die Namenseigenschaft an, und übergeben Sie das ServerConnection-Objekt aus Schritt 1.

  3. Rufen Sie die LoadProperties-Methode auf, um die Eigenschaften vom Server abzurufen. Wenn diese Methode false zurückgibt, ist die Datenbank mit dem angegebenen Namen nicht auf dem Server vorhanden.

  4. (Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine oder mehrere der festlegbaren DistributionDatabase-Eigenschaften fest.

  5. (Optional) Wenn die CachePropertyChanges-Eigenschaft des DistributionDatabase-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So zeigen Sie die Verlegereigenschaften an oder ändern diese

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

  2. Erstellen Sie eine Instanz der DistributionPublisher-Klasse. Geben Sie die Name-Eigenschaft an, und übergeben Sie das ServerConnection-Objekt aus Schritt 1.

  3. (Optional) Um Eigenschaften zu ändern, legen Sie einen neuen Wert für eine oder mehrere de festlegbaren DistributionPublisher-Eigenschaften fest.

  4. (Optional) Wenn die CachePropertyChanges-Eigenschaft des DistributionPublisher-Objekts auf true festgelegt ist, rufen Sie die CommitPropertyChanges-Methode auf, um Änderungen auf dem Server einzutragen.

So ändern Sie das Kennwort für die Verwaltungsverbindung zwischen dem Verleger und dem Verteiler

  1. Erstellen Sie eine Verbindung zum Verteiler, indem Sie die ServerConnection-Klasse verwenden.

  2. Erstellen Sie eine Instanz der ReplicationServer-Klasse.

  3. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 1 erstellte Verbindung fest.

  4. Rufen Sie die Load-Methode auf, um die Eigenschaften des Objekts abzurufen.

  5. Rufen Sie die ChangeDistributorPassword-Methode auf. Übergeben Sie den neuen Kennwortwert für den password-Parameter.

    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. (Optional) Führen Sie die folgenden Schritte aus, um das Kennwort bei jedem Remoteverleger zu ändern, der diesen Verteiler verwendet:

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

    2. Erstellen Sie eine Instanz der ReplicationServer-Klasse.

    3. Legen Sie die ConnectionContext-Eigenschaft auf die in Schritt 6a erstellte Verbindung fest.

    4. Rufen Sie die Load-Methode auf, um die Eigenschaften des Objekts abzurufen.

    5. Rufen Sie die ChangeDistributorPassword-Methode auf. Übergeben Sie den neuen Kennwortwert aus Schritt 5 für den password-Parameter.

Beispiel

In diesem Beispiel wird gezeigt, wie Verteilungs- und Verteilungsdatenbankeigenschaften geändert werden.

SicherheitshinweisSicherheitshinweis

Um die Speicherung von Anmeldeinformationen im Code vermeiden, wird das neue Verteilerkennwort zur Laufzeit angegeben.

            // Set the Distributor and distribution database names.
            string distributionDbName = "distribution";
            string distributorName = publisherInstance;

            ReplicationServer distributor;
            DistributionDatabase distributionDb;

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

            try
            {
                // Open the connection. 
                conn.Connect();

                distributor = new ReplicationServer(conn);

                // Load Distributor properties, if it is installed.
                if (distributor.LoadProperties())
                {
                    // Password supplied at runtime.
                    distributor.ChangeDistributorPassword(password);
                    distributor.AgentCheckupInterval = 5;

                    // Save changes to the Distributor properties.
                    distributor.CommitPropertyChanges();
                }
                else
                {
                    throw new ApplicationException(
                        String.Format("{0} is not a Distributor.", publisherInstance));
                }

                // Create an object for the distribution database 
                // using the open Distributor connection.
                distributionDb = new DistributionDatabase(distributionDbName, conn);

                // Change distribution database properties.
                if (distributionDb.LoadProperties())
                {
                    // Change maximum retention period to 48 hours and history retention 
                    // period to 24 hours.
                    distributionDb.MaxDistributionRetention = 48;
                    distributionDb.HistoryRetention = 24;

                    // Save changes to the distribution database properties.
                    distributionDb.CommitPropertyChanges();
                }
                else
                {
                    // Do something here if the distribution database does not exist.
                }
            }
            catch (Exception ex)
            {
                // Implement the appropriate error handling here. 
                throw new ApplicationException("An error occured when changing Distributor " +
                    " or distribution database properties.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance

Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase

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

Try
    ' Open the connection. 
    conn.Connect()

    distributor = New ReplicationServer(conn)

    ' Load Distributor properties, if it is installed.
    If distributor.LoadProperties() Then
        ' Password supplied at runtime.
        distributor.ChangeDistributorPassword(password)
        distributor.AgentCheckupInterval = 5

        ' Save changes to the Distributor properties.
        distributor.CommitPropertyChanges()
    Else
        Throw New ApplicationException( _
            String.Format("{0} is not a Distributor.", publisherInstance))
    End If

    ' Create an object for the distribution database 
    ' using the open Distributor connection.
    distributionDb = New DistributionDatabase(distributionDbName, conn)

    ' Change distribution database properties.
    If distributionDb.LoadProperties() Then
        ' Change maximum retention period to 48 hours and history retention 
        ' period to 24 hours.
        distributionDb.MaxDistributionRetention = 48
        distributionDb.HistoryRetention = 24

        ' Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges()
    Else
        ' Do something here if the distribution database does not exist.
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException("An error occured when changing Distributor " + _
        " or distribution database properties.", ex)
Finally
    conn.Disconnect()
End Try