MergeSubscription Clase

Definición

Representa una suscripción a una publicación de fusión registrada en el Publisher.

public ref class MergeSubscription sealed : Microsoft::SqlServer::Replication::Subscription
public sealed class MergeSubscription : Microsoft.SqlServer.Replication.Subscription
type MergeSubscription = class
    inherit Subscription
Public NotInheritable Class MergeSubscription
Inherits Subscription
Herencia

Ejemplos

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";

//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Ensure that the publication exists and that 
    // it supports push subscriptions.
    publication = new MergePublication();
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;
    publication.ConnectionContext = conn;

    if (publication.IsExistingObject)
    {
        if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPush;
        }

        // Define the push subscription.
        subscription = new MergeSubscription();
        subscription.ConnectionContext = conn;
        subscription.SubscriberName = subscriberName;
        subscription.PublicationName = publicationName;
        subscription.DatabaseName = publicationDbName;
        subscription.SubscriptionDBName = subscriptionDbName;
        subscription.HostName = hostname;

        // Set a schedule to synchronize the subscription every 2 hours
        // during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
        subscription.AgentSchedule.FrequencySubDayInterval = 2;
        subscription.AgentSchedule.ActiveStartDate = 20051108;
        subscription.AgentSchedule.ActiveEndDate = 20071231;
        subscription.AgentSchedule.ActiveStartTime = 060000;
        subscription.AgentSchedule.ActiveEndTime = 100000;

        // Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

        // Create the push subscription.
        subscription.Create();
    }
    else
    {
        // Do something here if the publication does not exist.
        throw new ApplicationException(String.Format(
            "The publication '{0}' does not exist on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here.
    throw new ApplicationException(String.Format(
        "The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

        ' Define the push subscription.
        subscription = New MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Create the push subscription.
        subscription.Create()
    Else

        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
    "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Comentarios

La MergeSubscription clase se utiliza tanto con suscripciones pull como push a una publicación de fusión.

Al configurar un Publisher con un distribuidor remoto, los valores suministrados para todos los parámetros, incluido SynchronizationAgentProcessSecurity, se envían al distribuidor en texto plano. Debe cifrar la conexión entre el publicador y su distribuidor remoto antes de llamar al método Create . Para más información, véase sp_reinitmergesubscription (Transact-SQL).

Seguridad de hilos

Cualquier miembro público estático (Shareden Microsoft Visual Basic) de este tipo es seguro para operaciones multihilo. No se garantiza que los miembros de instancia sean seguros para el acceso concurrente.

Constructores

Nombre Description
MergeSubscription()

Crea una nueva instancia de la clase MergeSubscription.

MergeSubscription(String, String, String, String, ServerConnection)

Crea una nueva instancia de la MergeSubscription clase con la conexión especificada al Publisher y las propiedades que definen de forma única la suscripción.

Propiedades

Nombre Description
AgentJobId

Obtiene el ID del trabajo agente que se usa para sincronizar la suscripción.

(Heredado de Subscription)
AgentOffload

Obtiene o establece si el agente de sincronización se ejecuta en un ordenador distinto al donde se creó el trabajo del agente. Esta propiedad ya no es compatible con distribuidores que ejecutan Microsoft SQL Server 2005 y versiones posteriores.

(Heredado de Subscription)
AgentOffloadServer

Obtiene o establece el nombre del ordenador remoto donde se ejecuta el agente al usar activación remota.

(Heredado de Subscription)
AgentSchedule

Obtiene el horario del trabajo de agente que se usa para sincronizar la suscripción.

(Heredado de Subscription)
CachePropertyChanges

Obtiene o establece si guardar en caché los cambios realizados en las propiedades de replicación o aplicarlos inmediatamente.

(Heredado de ReplicationObject)
ConnectionContext

Obtiene o establece la conexión a una instancia de Microsoft SQL Server.

(Heredado de ReplicationObject)
CreateSyncAgentByDefault

Obtiene o establece si el trabajo de agente utilizado para sincronizar la suscripción se crea por defecto.

(Heredado de Subscription)
DatabaseName

Obtiene o establece el nombre de la base de datos de publicaciones.

(Heredado de Subscription)
Description

Obtiene o establece una descripción textual de la suscripción de fusión.

EnabledForSynchronizationManager

Especifica si la suscripción puede sincronizarse usando Microsoft Windows Gestor de Sincronización.

(Heredado de Subscription)
HostName

Obtiene o establece el valor proporcionado a la función HOST_NAME cuando esta función se utiliza en el filtro de filas parametrizado que define la partición de datos del suscriptor.

IsExistingObject

Anota si el objeto existe en el servidor o no.

(Heredado de ReplicationObject)
Name

Recibe el nombre asignado a una suscripción existente.

(Heredado de Subscription)
Priority

Obtiene o establece el valor de prioridad relativa asignado a una suscripción de servidor.

PublicationName

Obtiene o establece el nombre de la publicación a la que se suscribe la suscripción.

(Heredado de Subscription)
PublisherSecurity

Obtiene el contexto de seguridad que usa el Agente de mezcla para conectarse al Publisher.

SqlServerName

Obtiene el nombre de la instancia de Microsoft SQL Server a la que está conectado este objeto.

(Heredado de ReplicationObject)
Status

Obtiene el estado de la suscripción.

(Heredado de Subscription)
SubscriberName

Obtiene o establece el nombre de la instancia de Microsoft SQL Server que es el Suscriptor.

(Heredado de Subscription)
SubscriberSecurity

Obtiene el contexto de seguridad que se usa para conectarse al Suscriptor.

(Heredado de Subscription)
SubscriberType

Obtiene o establece si la suscripción es de cliente o servidor.

SubscriptionDBName

Obtiene o establece el nombre de la base de datos en el Suscriptor que recibe los datos replicados.

(Heredado de Subscription)
SubscriptionType

Determina si la suscripción es para una suscripción push o pull.

(Heredado de Subscription)
SynchronizationAgent

Obtiene una instancia de la MergeSynchronizationAgent clase que puede usarse para sincronizar la suscripción.

SynchronizationAgentName

Obtiene o establece el nombre del trabajo de agente creado para sincronizar la suscripción.

(Heredado de Subscription)
SynchronizationAgentProcessSecurity

Obtiene el contexto de seguridad que se utiliza para especificar la cuenta Microsoft Windows bajo la cual se ejecuta el trabajo del agente de sincronización para sincronizar la suscripción.

(Heredado de Subscription)
SyncType

Obtiene o establece la forma en que se inicia la suscripción.

(Heredado de Subscription)
UseInteractiveResolver

Obtiene o establece si el Resolver Interactivo se utiliza durante el proceso de sincronización.

UserData

Obtiene o establece una propiedad de objeto que permite a los usuarios adjuntar sus propios datos al objeto.

(Heredado de ReplicationObject)

Métodos

Nombre Description
CheckValidCreation()

Comprueba la creación válida de la replicación.

(Heredado de ReplicationObject)
CheckValidDefinition(Boolean)

Indica si la definición de suscripción es válida.

(Heredado de Subscription)
CommitPropertyChanges()

Envía todas las sentencias de cambio de propiedades en caché a la instancia de Microsoft SQL Server.

(Heredado de ReplicationObject)
Create()

Crea el registro de suscripción en el Publisher.

(Heredado de Subscription)
Decouple()

Desacopla el objeto de replicación referenciado del servidor.

(Heredado de ReplicationObject)
GetChangeCommand(StringBuilder, String, String)

Devuelve el comando de cambio de la replicación.

(Heredado de ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Devuelve el comando create de la replicación.

(Heredado de ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Devuelve el comando drop de la replicación.

(Heredado de ReplicationObject)
InternalRefresh(Boolean)

Inicia una actualización interna desde la replicación.

(Heredado de ReplicationObject)
Load()

Carga las propiedades de un objeto existente desde el servidor.

(Heredado de ReplicationObject)
LoadProperties()

Carga las propiedades de un objeto existente desde el servidor.

(Heredado de ReplicationObject)
Refresh()

Recarga las propiedades del objeto.

(Heredado de ReplicationObject)
Reinitialize(Boolean)

Marca la suscripción de fusión para la reinicialización.

Remove()

Elimina el registro de suscripción en el Publisher y elimina los objetos de replicación en el Suscriptor para una suscripción push.

(Heredado de Subscription)
Script(ScriptOptions)

Devuelve un script Transact-SQL que puede usarse para crear o eliminar la suscripción.

(Heredado de Subscription)
StopSynchronizationJob()

Intenta detener un trabajo de Agente de mezcla en ejecución que actualmente está sincronizando la suscripción.

SynchronizeWithJob()

Inicia el trabajo del agente para sincronizar la suscripción.

Se aplica a

Consulte también