MergeSubscription Класс

Определение

Представляет собой подписку на слияние издание, зарегистрированное в 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
Наследование

Примеры

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

Комментарии

Класс используется как с подпиской pull MergeSubscription , так и push на слияние издания.

При настройке Publisher с удалённым дистрибьютором значения, предоставленные для всех параметров, включая SynchronizationAgentProcessSecurity, передаются дистрибьютору в виде простого текста. Перед вызовом метода Create следует зашифровать подключение между издателем и его удаленным распространителем. Для получения дополнительной информации см. sp_reinitmergesubscription (Transact-SQL).

Потокобезопасность

Любые публичные статические (Sharedв Microsoft Visual Basic) члены этого типа безопасны для многопоточных операций. Никакие члены экземпляра не гарантированы как потокобезопасные.

Конструкторы

Имя Описание
MergeSubscription()

Создает новый экземпляр класса MergeSubscription.

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

Создаёт новый экземпляр MergeSubscription класса с указанным соединением с Publisher и свойствами, которые уникально определяют подписку.

Свойства

Имя Описание
AgentJobId

Получает ID работы агента, используемого для синхронизации подписки.

(Унаследовано от Subscription)
AgentOffload

Получает или устанавливает, работает ли синхронизационный агент на компьютере, отличном от того, на котором была создана задача агента. Это свойство больше не поддерживается для дистрибьюторов с использованием Microsoft SQL Server 2005 и более поздних версий.

(Унаследовано от Subscription)
AgentOffloadServer

Получает или устанавливает имя удалённого компьютера, на котором работает агент, при использовании удалённой активации агента.

(Унаследовано от Subscription)
AgentSchedule

Получает расписание работы агента, используемого для синхронизации подписки.

(Унаследовано от Subscription)
CachePropertyChanges

Получает или задаёт, кэшировать ли изменения, внесённые в свойства репликации, или применять их сразу.

(Унаследовано от ReplicationObject)
ConnectionContext

Получает или устанавливает соединение с экземпляром Microsoft SQL Server.

(Унаследовано от ReplicationObject)
CreateSyncAgentByDefault

Определяет, создаётся ли по умолчанию задание агента для синхронизации подписки.

(Унаследовано от Subscription)
DatabaseName

Получает или устанавливает название базы данных публикаций.

(Унаследовано от Subscription)
Description

Получает или устанавливает текстовое описание подписки на слияние.

EnabledForSynchronizationManager

Указывает, можно ли синхронизировать подписку с помощью Microsoft Windows Менеджера синхронизации.

(Унаследовано от Subscription)
HostName

Получает или устанавливает значение, придаемое функции HOST_NAME , когда эта функция используется в параметризованном фильтре строки, определяющем раздел данных Абонента.

IsExistingObject

Понимает, существует ли объект на сервере или нет.

(Унаследовано от ReplicationObject)
Name

Имя присваивается существующей подписке.

(Унаследовано от Subscription)
Priority

Получает или устанавливает относительное значение приоритета, присваиваемое подписке на сервер.

PublicationName

Получает или устанавливает название издания, на которое подписана подписка.

(Унаследовано от Subscription)
PublisherSecurity

Получает контекст безопасности, используемый агент слияния для подключения к Publisher.

SqlServerName

Получает имя экземпляра Microsoft SQL Server, к которому подключён этот объект.

(Унаследовано от ReplicationObject)
Status

Получает статус подписки.

(Унаследовано от Subscription)
SubscriberName

Получает или устанавливает имя экземпляра Microsoft SQL Server, который является подписчиком.

(Унаследовано от Subscription)
SubscriberSecurity

Получает контекст безопасности, используемый для подключения к абоненту.

(Унаследовано от Subscription)
SubscriberType

Определяет, является ли подписка клиентской или серверной.

SubscriptionDBName

Получает или устанавливает имя базы данных абоненту, который получает реплицированные данные.

(Унаследовано от Subscription)
SubscriptionType

Понимает, является ли регистрация подписки для push или pull.

(Унаследовано от Subscription)
SynchronizationAgent

Получает экземпляр класса MergeSynchronizationAgent , который можно использовать для синхронизации подписки.

SynchronizationAgentName

Получает или устанавливает имя задачи агента, созданного для синхронизации подписки.

(Унаследовано от Subscription)
SynchronizationAgentProcessSecurity

Получает контекст безопасности, который используется для указания учетной записи Microsoft Windows, под которой выполняется задача агента синхронизации для синхронизации подписки.

(Унаследовано от Subscription)
SyncType

Определяет или устанавливает способ инициализации подписки.

(Унаследовано от Subscription)
UseInteractiveResolver

Определяет, используется ли интерактивный резольвер во время процесса синхронизации.

UserData

Получает или устанавливает свойство объекта, позволяющее пользователям прикреплять к объекту свои собственные данные.

(Унаследовано от ReplicationObject)

Методы

Имя Описание
CheckValidCreation()

Проверяет допустимое создание репликации.

(Унаследовано от ReplicationObject)
CheckValidDefinition(Boolean)

Указывает, действительно ли определение подписки.

(Унаследовано от Subscription)
CommitPropertyChanges()

Отправляет все кэшированные операторы изменения свойств на экземпляр Microsoft SQL Server.

(Унаследовано от ReplicationObject)
Create()

Создаёт регистрацию подписки в Publisher.

(Унаследовано от Subscription)
Decouple()

Отделяет объект репликации, на который связан, от сервера.

(Унаследовано от ReplicationObject)
GetChangeCommand(StringBuilder, String, String)

Возвращает команду изменения из репликации.

(Унаследовано от ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Возвращает команду create из репликации.

(Унаследовано от ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Возвращает команду drop из репликации.

(Унаследовано от ReplicationObject)
InternalRefresh(Boolean)

Запускает внутреннее обновление после репликации.

(Унаследовано от ReplicationObject)
Load()

Загружает свойства существующего объекта с сервера.

(Унаследовано от ReplicationObject)
LoadProperties()

Загружает свойства существующего объекта с сервера.

(Унаследовано от ReplicationObject)
Refresh()

Перезагружает свойства объекта.

(Унаследовано от ReplicationObject)
Reinitialize(Boolean)

Отмечает подписку на слияние для повторной инициализации.

Remove()

Удаляет регистрацию подписки в Publisher и удаляет объекты репликации у подписчика для push-подписки.

(Унаследовано от Subscription)
Script(ScriptOptions)

Возвращает скрипт Transact-SQL, который можно использовать для создания или удаления подписки.

(Унаследовано от Subscription)
StopSynchronizationJob()

Попытки остановить запущенную работу агент слияния, которая сейчас синхронизирует подписку.

SynchronizeWithJob()

Запускает работу агента для синхронизации подписки.

Применяется к

См. также раздел