Cómo configurar la publicación y distribución (programación con RMO)

Puede configurar la publicación y distribución de replicación mediante programación con Objetos de administración de replicación (RMO).

Para configurar la publicación y distribución en un único servidor

  1. Cree una conexión al servidor mediante la clase ServerConnection.

  2. Cree una instancia de la clase ReplicationServer. Pase el objeto ServerConnection del paso 1.

  3. Cree una instancia de la clase DistributionDatabase.

  4. Establezca la propiedad Name en el nombre de la base de datos y la propiedad ConnectionContext en el ServerConnection del paso 1.

  5. Instale el distribuidor llamando al método InstallDistributor. Pase el objeto DistributionDatabase del paso 3.

  6. Cree una instancia de la clase DistributionPublisher.

  7. Establezca las siguientes propiedades de DistributionPublisher:

  8. Llame al método Create.

Para configurar la publicación y distribución mediante un distribuidor remoto

  1. Cree una conexión al servidor del distribuidor remoto mediante la clase ServerConnection.

  2. Cree una instancia de la clase ReplicationServer. Pase el objeto ServerConnection del paso 1.

  3. Cree una instancia de la clase DistributionDatabase.

  4. Establezca la propiedad Name en el nombre de la base de datos y la propiedad ConnectionContext en el ServerConnection del paso 1.

  5. Instale el distribuidor llamando al método InstallDistributor. Especifique una contraseña segura (la que utiliza el publicador al conectarse al distribuidor remoto) y el objeto DistributionDatabase del paso 3. Para obtener más información, vea Proteger el distribuidor.

    Nota de seguridadNota de seguridad

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar credenciales, use los servicios de cifrado (en inglés) proporcionados por Microsoft Windows .NET Framework.

  6. Cree una instancia de la clase DistributionPublisher.

  7. Establezca las siguientes propiedades de DistributionPublisher:

  8. Llame al método Create.

  9. Cree una conexión al servidor publicador local mediante la clase ServerConnection.

  10. Cree una instancia de la clase ReplicationServer. Pase el objeto ServerConnection del paso 9.

  11. Llame al método InstallDistributor. Pase el nombre del distribuidor remoto y la contraseña para el distribuidor remoto especificado en el paso 5.

    Nota de seguridadNota de seguridad

    Cuando sea posible, pida a los usuarios que proporcionen credenciales de seguridad en tiempo de ejecución. Si debe almacenar credenciales, use los servicios de cifrado (en inglés) proporcionados por Windows .NET Framework.

Ejemplo

El ejemplo siguiente configura un servidor como publicador con un distribuidor local.

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