MergeSubscription Classe

Definição

Representa uma assinatura de uma publicação de fusão registrada no 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
Herança

Exemplos

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

Comentários

A MergeSubscription classe é usada tanto com assinaturas pull quanto push para uma publicação de fusão.

Ao configurar um Publisher com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, incluindo SynchronizationAgentProcessSecurity, são enviados ao Distribuidor como texto simples. É necessário criptografar a conexão entre o Publicador e o respectivo Distribuidor remoto antes de chamar o método Create. Para mais informações, veja sp_reinitmergesubscription (Transact-SQL).

Segurança de Thread

Qualquer membro público estático (Sharedem Microsoft Visual Basic) desse tipo é seguro para operações multithread. Não há garantia de que quaisquer membros de instância sejam thread-safe.

Construtores

Nome Description
MergeSubscription()

Cria uma nova instância da classe MergeSubscription.

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

Cria uma nova instância da MergeSubscription classe com a conexão especificada ao Publisher e as propriedades que definem de forma única a assinatura.

Propriedades

Nome Description
AgentJobId

Obtém o ID do trabalho do agente usado para sincronizar a assinatura.

(Herdado de Subscription)
AgentOffload

Obtém ou define se o agente de sincronização roda em um computador diferente daquele onde o trabalho do agente foi criado. Essa propriedade não é mais suportada para distribuidores que rodam Microsoft SQL Server 2005 e versões posteriores.

(Herdado de Subscription)
AgentOffloadServer

Recebe ou define o nome do computador remoto onde o agente roda ao usar ativação remota.

(Herdado de Subscription)
AgentSchedule

Recebe o cronograma do trabalho do agente usado para sincronizar a assinatura.

(Herdado de Subscription)
CachePropertyChanges

Obtém ou define se devem armazenar em cache as alterações feitas nas propriedades de replicação ou aplicá-las imediatamente.

(Herdado de ReplicationObject)
ConnectionContext

Obtém ou configura a conexão para uma instância do Microsoft SQL Server.

(Herdado de ReplicationObject)
CreateSyncAgentByDefault

Obtém ou define se o trabalho do agente usado para sincronizar a assinatura é criado por padrão.

(Herdado de Subscription)
DatabaseName

Obtém ou define o nome do banco de dados da publicação.

(Herdado de Subscription)
Description

Recebe ou define uma descrição textual da assinatura de fusão.

EnabledForSynchronizationManager

Especifica se a assinatura pode ser sincronizada usando Microsoft Windows Gerenciador de Sincronização.

(Herdado de Subscription)
HostName

Obtém ou define o valor fornecido à função HOST_NAME quando essa função é usada no filtro de linha parametrizada que define a partição de dados do assinante.

IsExistingObject

Determina se o objeto existe no servidor ou não.

(Herdado de ReplicationObject)
Name

Recebe o nome atribuído a uma assinatura existente.

(Herdado de Subscription)
Priority

Recebe ou define o valor de prioridade relativa atribuído a uma assinatura de servidor.

PublicationName

Obtém ou define o nome da publicação à qual a assinatura está assinada.

(Herdado de Subscription)
PublisherSecurity

Obtém o contexto de segurança usado pelo Agente de Mesclagem para se conectar ao Publisher.

SqlServerName

Obtém o nome da instância do Microsoft SQL Server à qual esse objeto está conectado.

(Herdado de ReplicationObject)
Status

Recebe o status da assinatura.

(Herdado de Subscription)
SubscriberName

Recebe ou define o nome da instância do Microsoft SQL Server que é o Assinante.

(Herdado de Subscription)
SubscriberSecurity

Obtém o contexto de segurança usado para se conectar ao assinante.

(Herdado de Subscription)
SubscriberType

Obtém ou define se a assinatura é cliente ou servidor.

SubscriptionDBName

Obtém ou define o nome do banco de dados no assinante que recebe os dados replicados.

(Herdado de Subscription)
SubscriptionType

Determina se o registro da assinatura é para uma assinatura push ou pull.

(Herdado de Subscription)
SynchronizationAgent

Recebe uma instância da MergeSynchronizationAgent classe que pode ser usada para sincronizar a assinatura.

SynchronizationAgentName

Recebe ou define o nome do job do agente criado para sincronizar a assinatura.

(Herdado de Subscription)
SynchronizationAgentProcessSecurity

Obtém o contexto de segurança usado para especificar a conta Microsoft Windows sob a qual o job do agente de sincronização é executado para sincronizar a assinatura.

(Herdado de Subscription)
SyncType

Obtém ou define a forma como a assinatura é iniciada.

(Herdado de Subscription)
UseInteractiveResolver

Obtém ou define se o Resolver Interativo é usado durante o processo de sincronização.

UserData

Obtém ou define uma propriedade de objeto que permite aos usuários anexar seus próprios dados ao objeto.

(Herdado de ReplicationObject)

Métodos

Nome Description
CheckValidCreation()

Verifica a criação válida da replicação.

(Herdado de ReplicationObject)
CheckValidDefinition(Boolean)

Indica se a definição de assinatura é válida.

(Herdado de Subscription)
CommitPropertyChanges()

Envia todas as declarações de alteração de propriedades em cache para a instância do Microsoft SQL Server.

(Herdado de ReplicationObject)
Create()

Cria o registro de assinatura no Publisher.

(Herdado de Subscription)
Decouple()

Desacopla o objeto de replicação referenciado do servidor.

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

Retorna o comando de mudança da replicação.

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

Retorna o comando create da replicação.

(Herdado de ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Retorna o comando drop da replicação.

(Herdado de ReplicationObject)
InternalRefresh(Boolean)

Inicia uma atualização interna a partir da replicação.

(Herdado de ReplicationObject)
Load()

Carrega as propriedades de um objeto existente a partir do servidor.

(Herdado de ReplicationObject)
LoadProperties()

Carrega as propriedades de um objeto existente a partir do servidor.

(Herdado de ReplicationObject)
Refresh()

Recarrega as propriedades do objeto.

(Herdado de ReplicationObject)
Reinitialize(Boolean)

Marca a assinatura da mescagem para reinicialização.

Remove()

Exclui o registro de assinatura no Publisher e remove objetos de replicação no Assinante para uma assinatura push.

(Herdado de Subscription)
Script(ScriptOptions)

Retorna um script Transact-SQL que pode ser usado para criar ou excluir a assinatura.

(Herdado de Subscription)
StopSynchronizationJob()

Tenta impedir um trabalho do Agente de Mesclagem em execução que está sincronizando a assinatura.

SynchronizeWithJob()

Inicia o trabalho do agente para sincronizar a assinatura.

Aplica-se a

Confira também