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
- Наследование
Примеры
// 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() |
Запускает задание агента асинхронно для синхронизации подписки по запросу. |