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
- Наследование
Примеры
// 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. |