Procédure : afficher et modifier les propriétés des serveurs de publication et de distribution (programmation RMO)

Vous pouvez afficher et modifier par programme les propriétés des serveurs de publication et de distribution en utilisant les objets RMO (Replication Management Objects).

Pour afficher et modifier les propriétés du serveur de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Créez une instance de la classe ReplicationServer. Passez l'objet ServerConnection créé à l'étape 1.

  3. (Facultatif) Vérifiez la propriété IsDistributor pour vérifier que le serveur actuellement connecté est un serveur de distribution.

  4. Appelez la méthode Load pour obtenir les propriétés du serveur.

  5. (Facultatif) Pour modifier des propriétés, modifiez la valeur d'une ou de plusieurs des propriétés du serveur de distribution qui peuvent être définies sur l'objet ReplicationServer.

  6. (Facultatif) Si la propriété CachePropertyChanges sur l'objet ReplicationServer a la valeur true, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur.

Pour afficher et modifier les propriétés de base de données de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Créez une instance de la classe DistributionDatabase. Spécifiez la propriété de nom et passez l'objet ServerConnection créé à l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés du serveur. Si cette méthode retourne false, la base de données avec le nom spécifié n'existe pas sur le serveur.

  4. (Facultatif) Pour modifier des propriétés, modifiez la valeur d'une des propriétés DistributionDatabase qui peuvent être définies.

  5. (Facultatif) Si la propriété CachePropertyChanges sur l'objet DistributionDatabase a la valeur true, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur.

Pour afficher et modifier les propriétés du serveur de publication

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe DistributionPublisher. Spécifiez la propriété Name et passez l'objet ServerConnection créé à l'étape 1.

  3. (Facultatif) Pour modifier des propriétés, modifiez la valeur d'une des propriétés DistributionPublisher qui peuvent être définies.

  4. (Facultatif) Si la propriété CachePropertyChanges sur l'objet DistributionPublisher a la valeur true, appelez la méthode CommitPropertyChanges pour valider les modifications sur le serveur.

Pour modifier le mot de passe pour la connexion administrative du serveur de publication au serveur de distribution

  1. Créez une connexion au serveur de distribution en utilisant la classe ServerConnection.

  2. Créez une instance de la classe ReplicationServer.

  3. Définissez la propriété ConnectionContext en spécifiant la connexion créée à l'étape 1.

  4. Appelez la méthode Load pour obtenir les propriétés de l'objet.

  5. Appelez la méthode ChangeDistributorPassword. Passez la nouvelle valeur de mot de passe pour le paramètre password.

    Remarque relative à la sécuritéRemarque relative à la sécurité

    Si possible, demandez aux utilisateurs de fournir des informations d'identification de sécurité au moment de l'exécution. Si vous devez stocker des informations d'identification, utilisez les Services de chiffrement fournis par Microsoft Windows .NET Framework.

  6. (Facultatif) Effectuez la procédure suivante pour modifier le mot de passe sur chaque serveur de publication distant qui utilise ce serveur de distribution :

    1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

    2. Créez une instance de la classe ReplicationServer.

    3. Définissez la propriété ConnectionContext en spécifiant la connexion créée à l'étape 6a.

    4. Appelez la méthode Load pour obtenir les propriétés de l'objet.

    5. Appelez la méthode ChangeDistributorPassword. Passez la nouvelle valeur de mot de passe spécifiée à l'étape 5 pour le paramètre password.

Exemple

Cet exemple montre comment modifier les propriétés du serveur de distribution et de la base de données de distribution.

Remarque relative à la sécuritéRemarque relative à la sécurité

Pour éviter de stocker les informations d'identification dans le code, le nouveau mot de passe du serveur de distribution est fourni au moment de l'exécution.

           // 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