Поделиться через


MergePullSubscription Класс

Определение

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

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

Комментарии

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

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

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

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

MergePullSubscription()

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

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

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

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

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

Свойства

AgentJobId

Возвращает идентификатор задания агента, который используется для синхронизации подписки.

(Унаследовано от 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

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

(Унаследовано от 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 при соединении с веб-сервером в течение веб-синхронизации.

InternetPassword

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

InternetSecurityMode

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

InternetTimeout

Возвращает или задает время ожидания HTTP при соединении с веб-сервером в течение веб-синхронизации, в секундах.

InternetUrl

Возвращает или задает URL-адрес, используемый при синхронизации подписки с помощью веб-синхронизации.

IsExistingObject

Возвращает значение, указывающее, существует ли объект на сервере.

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

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

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

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

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

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

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

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

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

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

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

Возвращает или задает весовой коэффициент данной серверной подписки относительно других серверных подписок, применяемый при разрешении конфликтов между подписками.

PublicationDBName

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

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

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

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

Возвращает или задает имя издателя.

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

Возвращает или задает контекст безопасности, используемый агентом синхронизации при соединении с издателем.

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

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

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

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

SqlServerName

Возвращает имя экземпляра microsoft SQL Server, к которому подключен этот объект.

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

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

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

Возвращает или задает значение, указывающее, является ли подписка серверной или клиентской.

SubscriptionId

Возвращает значение идентификатора подписки.

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

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

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

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

SynchronizationAgentProcessSecurity

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

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

Возвращает или задает способ инициализации данных в подписчике.

Type

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

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

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

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

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

UserData

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

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

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

WorkingDirectory

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

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

Методы

CheckValidCreation()

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

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

Определяет, является ли определение допустимым.

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

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

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

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

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

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

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

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

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

Возвращает альтернативных участников синхронизации

GetChangeCommand(StringBuilder, String, String)

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

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

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

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

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

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

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

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

Инициирует внутреннее обновление из репликации.

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

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

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

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

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

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

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

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

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

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

Remove()

Удаляет подписку по запросу.

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

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

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

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

SynchronizeWithJob()

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

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

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