Compartir a través de


MergeSubscription Clase

Definición

Representa una suscripción a una publicación de combinación registrada en el publicador.

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 usa con suscripciones de extracción e inserción en una publicación de combinación.

Al configurar un publicador con un distribuidor remoto, los valores proporcionados para todos los parámetros, incluidos SynchronizationAgentProcessSecurity, se envían al distribuidor como texto sin formato. Debe cifrar la conexión entre el publicador y su distribuidor remoto antes de llamar al método Create . Para obtener más información, vea sp_reinitmergesubscription (Transact-SQL).

Seguridad para subprocesos

Los miembros estáticos públicos (Shared en Microsoft Visual Basic) de este tipo son seguros para las operaciones multiproceso. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Constructores

MergeSubscription()

Crea una nueva instancia de la clase MergeSubscription.

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

Crea una instancia de la clase MergeSubscription con la conexión especificada al publicador y las propiedades que definen de forma unívoca la suscripción.

Propiedades

AgentJobId

Obtiene el identificador del trabajo del agente utilizado para sincronizar la suscripción.

(Heredado de Subscription)
AgentOffload

Obtiene o establece si el agente de sincronización se ejecuta en un equipo distinto del equipo donde se creó el trabajo de 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 equipo remoto donde se ejecuta el agente cuando se usa la activación remota del agente.

(Heredado de Subscription)
AgentSchedule

Obtiene el trabajo del agente utilizado para sincronizar la suscripción.

(Heredado de Subscription)
CachePropertyChanges

Obtiene o establece si los cambios realizados en las propiedades de replicación se almacenan en memoria caché o se aplican 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 de forma predeterminada se crea el trabajo de agente utilizado para sincronizar la suscripción.

(Heredado de Subscription)
DatabaseName

Obtiene o establece el nombre de la base de datos de publicación.

(Heredado de Subscription)
Description

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

EnabledForSynchronizationManager

Especifica si la suscripción se puede sincronizar mediante el Administrador de sincronización de Microsoft Windows.

(Heredado de Subscription)
HostName

Obtiene o establece el valor proporcionado a la función HOST_NAME cuando esta función se usa en el filtro de fila con parámetros que define la partición de datos del suscriptor.

IsExistingObject

Obtiene si el objeto existe en el servidor.

(Heredado de ReplicationObject)
Name

Obtiene 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 realiza la suscripción.

(Heredado de Subscription)
PublisherSecurity

Obtiene el contexto de seguridad utilizado por el Agente de mezcla para la conexión al publicador.

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 usa para la conexión al suscriptor.

(Heredado de Subscription)
SubscriberType

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

SubscriptionDBName

Obtiene o establece el nombre de la base de datos del suscriptor que recibe los datos replicados.

(Heredado de Subscription)
SubscriptionType

Obtiene si el registro de la suscripción es para una suscripción de inserción o de extracción.

(Heredado de Subscription)
SynchronizationAgent

Obtiene una instancia de la clase MergeSynchronizationAgent que puede utilizarse 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 usa para especificar la cuenta de Microsoft Windows con la que se ejecuta el trabajo del agente de sincronización para sincronizar la suscripción.

(Heredado de Subscription)
SyncType

Obtiene o establece la manera en la que se inicializa la suscripción.

(Heredado de Subscription)
UseInteractiveResolver

Obtiene o establece si el Solucionador interactivo se utiliza durante el proceso de sincronización.

UserData

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

(Heredado de ReplicationObject)

Métodos

CheckValidCreation()

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

(Heredado de ReplicationObject)
CheckValidDefinition(Boolean)

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

(Heredado de Subscription)
CommitPropertyChanges()

Envía todas las instrucciones de cambio de propiedad almacenadas en caché a la instancia de Microsoft SQL Server.

(Heredado de ReplicationObject)
Create()

Crea el registro de la suscripción en el publicador.

(Heredado de Subscription)
Decouple()

Desacopla del servidor el objeto de replicación al que se hace referencia.

(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 de creación 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 de 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()

Vuelve a cargar las propiedades del objeto.

(Heredado de ReplicationObject)
Reinitialize(Boolean)

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

Remove()

Elimina el registro de la suscripción en el publicador y quita los objetos de replicación del suscriptor para una suscripción de inserción.

(Heredado de Subscription)
Script(ScriptOptions)

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

(Heredado de Subscription)
StopSynchronizationJob()

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

SynchronizeWithJob()

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

Se aplica a

Consulte también