MergeSubscription Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma assinatura para uma publicação de mesclagem registrada no 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
- 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 com assinaturas pull e push para uma publicação de mesclagem.
Ao configurar um Publicador com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, incluindo SynchronizationAgentProcessSecurity, são enviados ao Distribuidor como texto sem formatação. É necessário criptografar a conexão entre o Publicador e o respectivo Distribuidor remoto antes de chamar o método Create. Para obter mais informações, consulte sp_reinitmergesubscription (Transact-SQL).
Acesso thread-safe
Todos os membros estáticos públicos (Shared
no Microsoft Visual Basic) desse tipo são seguros para operações multithread. Não há garantia de que qualquer membro de instância seja seguro para threads.
Construtores
MergeSubscription() |
Cria uma nova instância da classe MergeSubscription. |
MergeSubscription(String, String, String, String, ServerConnection) |
Cria uma nova instância da classe MergeSubscription com a conexão especificada com o Publicador e as propriedades que definem exclusivamente a assinatura. |
Propriedades
AgentJobId |
Obtém a ID do trabalho de agente usado para sincronizar a assinatura. (Herdado de Subscription) |
AgentOffload |
Obtém ou define se o agente de sincronização é executado em um computador diferente do computador em que o trabalho do agente foi criado. Essa propriedade não tem mais suporte para Distribuidores que executam o Microsoft SQL Server 2005 e posterior. (Herdado de Subscription) |
AgentOffloadServer |
Obtém ou define o nome do computador remoto no qual o agente é executado ao usar a ativação de agente remota. (Herdado de Subscription) |
AgentSchedule |
Obtém a agenda do trabalho de agente a ser usada para sincronizar a assinatura. (Herdado de Subscription) |
CachePropertyChanges |
Obtém ou define se as alterações feitas às propriedades de replicação devem ser armazenadas em cache ou aplicadas imediatamente. (Herdado de ReplicationObject) |
ConnectionContext |
Obtém ou define a conexão com uma instância do Microsoft SQL Server. (Herdado de ReplicationObject) |
CreateSyncAgentByDefault |
Obtém ou define se o trabalho de agente usado para sincronizar a assinatura é criado por padrão. (Herdado de Subscription) |
DatabaseName |
Obtém ou define o nome do banco de dados de publicação. (Herdado de Subscription) |
Description |
Obtém ou define uma descrição textual da assinatura de mesclagem. |
EnabledForSynchronizationManager |
Especifica se a assinatura pode ser sincronizada usando o Gerenciador de Sincronização do Microsoft Windows. (Herdado de Subscription) |
HostName |
Obtém ou define o valor fornecido para a função HOST_NAME quando essa função é usada no filtro de linha com parâmetros que define a partição de dados do Assinante. |
IsExistingObject |
Especifica se o objeto existe no servidor ou não. (Herdado de ReplicationObject) |
Name |
Obtém o nome atribuído a uma assinatura existente. (Herdado de Subscription) |
Priority |
Obtém 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 assina. (Herdado de Subscription) |
PublisherSecurity |
Obtém o contexto de segurança usado pelo Merge Agent para conectar-se ao Publicador. |
SqlServerName |
Obtém o nome da instância do Microsoft SQL Server à qual esse objeto está conectado. (Herdado de ReplicationObject) |
Status |
Obtém o status da assinatura. (Herdado de Subscription) |
SubscriberName |
Obtém ou define o nome da instância do Microsoft SQL Server que corresponde ao Assinante. (Herdado de Subscription) |
SubscriberSecurity |
Obtém o contexto de segurança usado para conexão ao Assinante. (Herdado de Subscription) |
SubscriberType |
Obtém ou define se a assinatura é uma assinatura de 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 de assinatura é push ou pull. (Herdado de Subscription) |
SynchronizationAgent |
Obtém uma instância da classe MergeSynchronizationAgent que pode ser usada para sincronizar a assinatura. |
SynchronizationAgentName |
Obtém ou define o nome do trabalho de agente criado para sincronizar a assinatura. (Herdado de Subscription) |
SynchronizationAgentProcessSecurity |
Obtém o contexto de segurança usado para especificar a conta do Microsoft Windows na qual o trabalho do agente de sincronização é executado para sincronizar a assinatura. (Herdado de Subscription) |
SyncType |
Obtém ou define a maneira na qual a assinatura é inicializada. (Herdado de Subscription) |
UseInteractiveResolver |
Obtém ou define se o Resolvedor Interativo é usado durante o processo de sincronização. |
UserData |
Obtém ou define uma propriedade de objeto que permite que os usuários anexem seus próprios dados ao objeto. (Herdado de ReplicationObject) |
Métodos
CheckValidCreation() |
Verifica a criação de replicação válida. (Herdado de ReplicationObject) |
CheckValidDefinition(Boolean) |
Indica se definição da assinatura é válida. (Herdado de Subscription) |
CommitPropertyChanges() |
Envia todas as instruções de alteração de propriedade armazenadas em cache para a instância do Microsoft SQL Server. (Herdado de ReplicationObject) |
Create() |
Cria o registro de assinatura no Publicador. (Herdado de Subscription) |
Decouple() |
Desacopla o objeto de replicação referenciado do servidor. (Herdado de ReplicationObject) |
GetChangeCommand(StringBuilder, String, String) |
Retorna o comando change 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 da replicação. (Herdado de ReplicationObject) |
Load() |
Carrega as propriedades de um objeto existente do servidor. (Herdado de ReplicationObject) |
LoadProperties() |
Carrega as propriedades de um objeto existente do servidor. (Herdado de ReplicationObject) |
Refresh() |
Recarrega as propriedades do objeto. (Herdado de ReplicationObject) |
Reinitialize(Boolean) |
Marca a assinatura de mesclagem para reinicialização. |
Remove() |
Exclui o registro de assinatura no Publicador e remove os 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 interromper um trabalho do Agente de Mesclagem em execução que está sincronizando a assinatura no momento. |
SynchronizeWithJob() |
Inicia o trabalho de agente para sincronizar a assinatura. |