TransPullSubscription Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет собой pull подписку на транзакционную публикацию.
public ref class TransPullSubscription sealed : Microsoft::SqlServer::Replication::PullSubscription
public sealed class TransPullSubscription : Microsoft.SqlServer.Replication.PullSubscription
type TransPullSubscription = class
inherit PullSubscription
Public NotInheritable Class TransPullSubscription
Inherits PullSubscription
- Наследование
Примеры
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksProductTran";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
//Create connections to the Publisher and Subscriber.
ServerConnection subscriberConn = new ServerConnection(subscriberName);
ServerConnection publisherConn = new ServerConnection(publisherName);
// Create the objects that we need.
TransPublication publication;
TransPullSubscription subscription;
try
{
// Connect to the Publisher and Subscriber.
subscriberConn.Connect();
publisherConn.Connect();
// Ensure that the publication exists and that
// it supports pull subscriptions.
publication = new TransPublication();
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
publication.ConnectionContext = publisherConn;
if (publication.IsExistingObject)
{
if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPull;
}
// Define the pull subscription.
subscription = new TransPullSubscription();
subscription.ConnectionContext = subscriberConn;
subscription.PublisherName = publisherName;
subscription.PublicationName = publicationName;
subscription.PublicationDBName = publicationDbName;
subscription.DatabaseName = subscriptionDbName;
// Specify the Windows login credentials for the Distribution Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
subscription.SynchronizationAgentProcessSecurity.Password = winPassword;
// Make sure that the agent job for the subscription is created.
subscription.CreateSyncAgentByDefault = true;
// By default, subscriptions to transactional publications are synchronized
// continuously, but in this case we only want to synchronize on demand.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;
// Create the pull subscription at the Subscriber.
subscription.Create();
Boolean registered = false;
// Verify that the subscription is not already registered.
foreach (TransSubscription existing
in publication.EnumSubscriptions())
{
if (existing.SubscriberName == subscriberName
&& existing.SubscriptionDBName == subscriptionDbName)
{
registered = true;
}
}
if (!registered)
{
// Register the subscription with the Publisher.
publication.MakePullSubscriptionWellKnown(
subscriberName, subscriptionDbName,
SubscriptionSyncType.Automatic,
TransSubscriberType.ReadOnly);
}
}
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 = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
'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 TransPublication
Dim subscription As TransPullSubscription
Try
' Connect to the Publisher and Subscriber.
subscriberConn.Connect()
publisherConn.Connect()
' Ensure that the publication exists and that
' it supports pull subscriptions.
publication = New TransPublication()
publication.Name = publicationName
publication.DatabaseName = publicationDbName
publication.ConnectionContext = publisherConn
If publication.IsExistingObject Then
If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPull
End If
' Define the pull subscription.
subscription = New TransPullSubscription()
subscription.ConnectionContext = subscriberConn
subscription.PublisherName = publisherName
subscription.PublicationName = publicationName
subscription.PublicationDBName = publicationDbName
subscription.DatabaseName = subscriptionDbName
subscription.Description = "Pull subscription to " + publicationDbName _
+ " on " + subscriberName + "."
' Specify the Windows login credentials for the Distribution Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin
subscription.SynchronizationAgentProcessSecurity.Password = winPassword
' Make sure that the agent job for the subscription is created.
subscription.CreateSyncAgentByDefault = True
' By default, subscriptions to transactional publications are synchronized
' continuously, but in this case we only want to synchronize on demand.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand
' 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 TransSubscription In publication.EnumSubscriptions()
If existing.SubscriberName = subscriberName And _
existing.SubscriptionDBName = subscriptionDbName Then
registered = True
End If
Next existing
If Not registered Then
' Register the subscription with the Publisher.
publication.MakePullSubscriptionWellKnown( _
subscriberName, subscriptionDbName, _
SubscriptionSyncType.Automatic, _
TransSubscriberType.ReadOnly)
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 подписки агент распространения работает на Subscriber.
Потокобезопасность
Любые публичные статические (Sharedв Microsoft Visual Basic) члены этого типа безопасны для многопоточных операций. Никакие члены экземпляра не гарантированы как потокобезопасные.
Конструкторы
| Имя | Описание |
|---|---|
| TransPullSubscription() |
Создает новый экземпляр класса TransPullSubscription. |
| TransPullSubscription(String, String, String, String, ServerConnection, Boolean) |
Создаёт новый экземпляр TransPullSubscription класса с свойствами, определяющими pull-подписку, и с вопросом, стоит ли создавать работу агента для подписки. |
| TransPullSubscription(String, String, String, String, ServerConnection) |
Создаёт новый экземпляр TransPullSubscription класса с свойствами, определяющими pull-подписку. |
Свойства
| Имя | Описание |
|---|---|
| AgentJobId |
Получает ID работы агента, используемого для синхронизации подписки. (Унаследовано от PullSubscription) |
| AgentOffload |
Определяет, работает ли агент синхронизации на компьютере, отличном от того, на котором была создана задача агента. Это свойство больше не поддерживается для дистрибьюторов с использованием Microsoft SQL Server 2005 и более поздних версий. (Унаследовано от PullSubscription) |
| AgentOffloadServer |
Получает или устанавливает имя удалённого компьютера, на котором работает агент, при использовании удалённой активации агента. (Унаследовано от PullSubscription) |
| AgentSchedule |
Получает расписание работы агента, используемого для синхронизации подписки. (Унаследовано от PullSubscription) |
| AltSnapshotFolder |
Получает или устанавливает место, где получены файлы снимков публикации, если стандартное место снимка у Дистрибьютора не используется. (Унаследовано от PullSubscription) |
| Attributes |
Получает или устанавливает атрибуты транзакционной публикации, поддерживаемые подпиской. |
| CachePropertyChanges |
Получает или задаёт, кэшировать ли изменения, внесённые в свойства репликации, или применять их сразу. (Унаследовано от ReplicationObject) |
| ConnectionContext |
Получает или устанавливает соединение с экземпляром Microsoft SQL Server. (Унаследовано от ReplicationObject) |
| CreateSyncAgentByDefault |
Определяет, создаётся ли работа агента, используемая для запуска агента репликации для синхронизации подписки, при создании подписки. (Унаследовано от PullSubscription) |
| DatabaseName |
Получает или устанавливает имя базы данных подписок. (Унаследовано от PullSubscription) |
| Description |
Получает или устанавливает текстовое описание подписки на pull. (Унаследовано от PullSubscription) |
| DistributorName |
Получает или устанавливает экземпляр Microsoft SQL Server, который является дистрибьютором и распространяет публикацию, на которую подписана подписка. (Унаследовано от PullSubscription) |
| DistributorSecurity |
Получает контекст безопасности, используемый для подключения к дистрибьютору. (Унаследовано от PullSubscription) |
| DtsPackageLocation |
Получает или устанавливает местоположение пакета Data Transformation Services (DTS), используемого с преобразуемой подпиской. |
| DtsPackageName |
Получает или устанавливает имя пакета Data Transformation Services (DTS), используемого в преобразуемой подписке. |
| DtsPackagePassword |
Получает или устанавливает пароль, используемый при трансформируемой подписке. |
| EnabledForSynchronizationManager |
Указывает, можно ли синхронизировать подписку с помощью Менеджера синхронизации Windows. (Унаследовано от PullSubscription) |
| FtpAddress |
Получает или устанавливает IP-адрес FTP-сервера. (Унаследовано от PullSubscription) |
| FtpLogin |
Получает или устанавливает FTP-вход. (Унаследовано от PullSubscription) |
| FtpPassword |
Получает или устанавливает пароль FTP. (Унаследовано от PullSubscription) |
| FtpPort |
Получает или устанавливает номер порта для FTP-сервера. (Унаследовано от PullSubscription) |
| IsExistingObject |
Понимает, существует ли объект на сервере или нет. (Унаследовано от ReplicationObject) |
| IsMemoryOptimized |
Представляет собой pull подписку на транзакционную публикацию. (Унаследовано от PullSubscription) |
| LastAgentDateTime |
Получает дату и время последней синхронизации подписки. (Унаследовано от PullSubscription) |
| LastAgentStatus |
Получает статус последней синхронизации подписки. (Унаследовано от PullSubscription) |
| LastAgentSummary |
Получает сводку результатов последней синхронизации подписки. (Унаследовано от PullSubscription) |
| LastSummaryDateTime |
Получает дату и время завершения последней синхронизации. |
| MemoryOptimized |
Представляет собой pull подписку на транзакционную публикацию. |
| Name |
Он генерирует имя для pull подписки. (Унаследовано от PullSubscription) |
| PublicationDBName |
Получает или устанавливает название базы данных публикаций. (Унаследовано от PullSubscription) |
| PublicationName |
Получает или устанавливает название издания, на которое подписана подписка. (Унаследовано от PullSubscription) |
| PublisherName |
Получает или устанавливает имя Publisher. (Унаследовано от PullSubscription) |
| PublisherSecurity |
Получает или устанавливает контекст безопасности, используемый Synchronization Agent при подключении к Publisher. (Унаследовано от PullSubscription) |
| SecureFtpPassword |
Получает или устанавливает защищённый пароль для входа, используемого для подключения к FTP-серверу. (Унаследовано от PullSubscription) |
| SqlServerName |
Получает имя экземпляра Microsoft SQL Server, к которому подключён этот объект. (Унаследовано от ReplicationObject) |
| SubscriberSecurity |
Получает контекст безопасности, который используется агентом синхронизации при подключении к абоненту. (Унаследовано от PullSubscription) |
| SubscriberType |
Получает или устанавливает поведение обновления подписки. |
| SubscriptionId |
Получает значение ID подписки. (Унаследовано от PullSubscription) |
| SubscriptionType |
Понимает, является ли регистрация подписки на push, pull или для анонимной подписки. (Унаследовано от PullSubscription) |
| SynchronizationAgent |
Получает объект, представляющий экземпляр агент распространения, который можно использовать для синхронизации подписки. |
| SynchronizationAgentProcessSecurity |
Получает контекст безопасности, который используется для указания Microsoft Windows аккаунта, под которым выполняется задача Синхронизационного агента для синхронизации подписки. (Унаследовано от PullSubscription) |
| Type |
Получает или устанавливает тип публикации. (Унаследовано от PullSubscription) |
| UseFtp |
Определяет, доступны ли файлы снимков, необходимые для инициализации pull подписки, через Агент синхронизации с помощью протокола передачи файлов (FTP). (Унаследовано от PullSubscription) |
| UserData |
Получает или устанавливает свойство объекта, позволяющее пользователям прикреплять к объекту свои собственные данные. (Унаследовано от ReplicationObject) |
| WorkingDirectory |
Получает или устанавливает путь каталога в Подписчике, который используется для временного хранения и декомпрессии загруженных файлов снимков. (Унаследовано от PullSubscription) |
Методы
| Имя | Описание |
|---|---|
| CheckValidCreation() |
Проверяет допустимое создание репликации. (Унаследовано от ReplicationObject) |
| CheckValidDefinition(Boolean) |
Указывает, является ли определение корректным. (Унаследовано от PullSubscription) |
| CommitPropertyChanges() |
Отправляет все кэшированные операторы изменения свойств на экземпляр Microsoft SQL Server. (Унаследовано от ReplicationObject) |
| Create() |
Создаёт pull подписку на подписчике. (Унаследовано от PullSubscription) |
| CustomEnabledForSyncMgr(StringBuilder) |
Активирует пользовательскую публикацию для синхронного менеджера. (Унаследовано от PullSubscription) |
| Decouple() |
Отделяет объект репликации, на который связан, от сервера. (Унаследовано от ReplicationObject) |
| DoUpdateMemoryOptimizedProperty(String) |
Представляет собой pull подписку на транзакционную публикацию. |
| 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() |
Отмечает подписку pull для повторной инициализации. |
| Remove() |
Убирает подписку на pull. (Унаследовано от PullSubscription) |
| Script(ScriptOptions) |
Возвращает скрипт Transact-SQL для создания или удаления pull подписки на основе текущей настройки PullSubscription свойств объекта. (Унаследовано от PullSubscription) |
| StopSynchronizationJob() |
Попытки остановить выполняющуюся работу агент распространения, которая сейчас синхронизирует подписку. |
| SynchronizeWithJob() |
Запускает работу агента для синхронизации подписки. |