MergePullSubscription Класс

Определение

Представляет собой pull подписку на слияние.

public ref class MergePullSubscription sealed : Microsoft::SqlServer::Replication::PullSubscription
public sealed class MergePullSubscription : Microsoft.SqlServer.Replication.PullSubscription
type MergePullSubscription = class
    inherit PullSubscription
Public NotInheritable Class MergePullSubscription
Inherits PullSubscription
Наследование
MergePullSubscription

Примеры

// 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 connections to the Publisher and Subscriber.
ServerConnection subscriberConn = new ServerConnection(subscriberName);
ServerConnection publisherConn = new ServerConnection(publisherName);

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

try
{
    // Connect to the Subscriber.
    subscriberConn.Connect();

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

    if (publication.LoadProperties())
    {
        if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPull;
        }

        // Define the pull subscription.
        subscription = new MergePullSubscription();
        subscription.ConnectionContext = subscriberConn;
        subscription.PublisherName = publisherName;
        subscription.PublicationName = publicationName;
        subscription.PublicationDBName = publicationDbName;
        subscription.DatabaseName = subscriptionDbName;
        subscription.HostName = hostname;

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

        // Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = true;

        // Create the pull subscription at the Subscriber.
        subscription.Create();

        Boolean registered = false;

        // Verify that the subscription is not already registered.
        foreach (MergeSubscription existing
            in publication.EnumSubscriptions())
        {
            if (existing.SubscriberName == subscriberName
                && existing.SubscriptionDBName == subscriptionDbName
                && existing.SubscriptionType == SubscriptionOption.Pull)
            {
                registered = true;
            }
        }
        if (!registered)
        {
            // Register the local subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown(
                subscriberName, subscriptionDbName,
                SubscriptionSyncType.Automatic,
                MergeSubscriberType.Local, 0);
        }
    }
    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
{
    subscriberConn.Disconnect();
    publisherConn.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 connections to the Publisher and Subscriber.
Dim subscriberConn As ServerConnection = New ServerConnection(subscriberName)
Dim publisherConn As ServerConnection = New ServerConnection(publisherName)

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

Try
    ' Connect to the Subscriber.
    subscriberConn.Connect()

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

    If publication.LoadProperties() Then
        If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPull
        End If

        ' Define the pull subscription.
        subscription = New MergePullSubscription()
        subscription.ConnectionContext = subscriberConn
        subscription.PublisherName = publisherName
        subscription.PublicationName = publicationName
        subscription.PublicationDBName = publicationDbName
        subscription.DatabaseName = subscriptionDbName
        subscription.HostName = hostname

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

        ' Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = True

        ' Create the pull subscription at the Subscriber.
        subscription.Create()

        Dim registered As Boolean = False

        ' Verify that the subscription is not already registered.
        For Each existing As MergeSubscription In _
        publication.EnumSubscriptions()
            If existing.SubscriberName = subscriberName Then
                registered = True
            End If
        Next
        If Not registered Then
            ' Register the local subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown( _
             subscriberName, subscriptionDbName, _
             SubscriptionSyncType.Automatic, _
             MergeSubscriberType.Local, 0)
        End If
    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
    subscriberConn.Disconnect()
    publisherConn.Disconnect()
End Try

Комментарии

Для pull подписки агент слияния запускается у подписчика.

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

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

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

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

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

MergePullSubscription(String, String, String, String, ServerConnection, Boolean)

Создаёт новый экземпляр MergePullSubscription класса с указанной базой данных, Publisher, публикацией, соединением с подписчиком и с указанием, создана ли работа агента.

MergePullSubscription(String, String, String, String, ServerConnection)

Инициализирует новый экземпляр MergePullSubscription класса с указанной базой данных, Publisher, публикацией и соединением Subscriber.

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

EnabledForSynchronizationManager

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

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

Получает или устанавливает IP-адрес FTP-сервера.

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

Получает или устанавливает FTP-вход.

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

Получает или устанавливает пароль FTP.

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

Получает или устанавливает номер порта для FTP-сервера.

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

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

InternetLogin

Получает или устанавливает логин, используемый с HTTP Basic Authentication при подключении к веб-серверу во время веб-синхронизации.

InternetPassword

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

InternetSecurityMode

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

InternetTimeout

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

InternetUrl

Получает или устанавливает URL для синхронизации подписки с помощью веб-синхронизации.

IsExistingObject

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

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

Представляет собой pull подписку на слияние.

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

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

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

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

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

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

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

Он генерирует имя для pull подписки.

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

Получает или устанавливает вес этой подписки на сервер относительно других серверных подписок при разрешении конфликтов между подписками.

PublicationDBName

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

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

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

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

Получает или устанавливает имя Publisher.

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

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

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

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

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

Устанавливает пароль (как SecureString объект), используемый при подключении к веб-серверу с помощью аутентификации HTTP Basic.

SqlServerName

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

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

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

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

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

SubscriptionId

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

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

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

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

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

SynchronizationAgentProcessSecurity

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

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

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

Type

Получает или устанавливает тип публикации.

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

Определяет, доступны ли файлы снимков, необходимые для инициализации pull подписки, через Агент синхронизации с помощью протокола передачи файлов (FTP).

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

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

UserData

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

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

Определяет, синхронизирована ли подписка с помощью веб-синхронизации.

WorkingDirectory

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

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

Методы

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

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

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

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

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

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

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

Создаёт pull подписку на подписчике.

(Унаследовано от PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

Активирует пользовательскую публикацию для синхронного менеджера.

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

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

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

Возвращает альтернативных партнёров по синхронизации

GetChangeCommand(StringBuilder, String, String)

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

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

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

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

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

(Унаследовано от ReplicationObject)
InitMemberVariables(String, String, String, String, Boolean)

Инициализирует переменные элемента.

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

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

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

Возвращает информацию о последнем выполненном задании Агента синхронизации.

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

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

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

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

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

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

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

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

Remove()

Убирает подписку на pull.

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

Возвращает скрипт Transact-SQL для создания или удаления pull подписки на основе текущей настройки PullSubscription свойств объекта.

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

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

SynchronizeWithJob()

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

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

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