TransPullSubscription Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет подписку по запросу на публикацию транзакций.
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
Комментарии
Для подписки по запросу агент распространения выполняется на подписчике.
Потокобезопасность
Все общедоступные статические элементы (Shared
в Microsoft Visual Basic) этого типа безопасны для многопоточных операций. Потокобезопасная работа с членами экземпляров типа не гарантируется.
Конструкторы
TransPullSubscription() |
Создает новый экземпляр класса TransPullSubscription. |
TransPullSubscription(String, String, String, String, ServerConnection) |
Создает новый экземпляр класса TransPullSubscription со свойствами, которые определяют подписку по запросу. |
TransPullSubscription(String, String, String, String, ServerConnection, Boolean) |
Создает новый экземпляр класса TransPullSubscription со свойствами, которые определяют подписку по запросу, и показывает, создается ли задание агента для подписки. |
Свойства
AgentJobId |
Возвращает идентификатор задания агента, который используется для синхронизации подписки. (Унаследовано от 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 |
Возвращает или задает текстовое описание подписки по запросу. (Унаследовано от PullSubscription) |
DistributorName |
Возвращает или задает экземпляр microsoft SQL Server, который является распространителем и распространяет публикацию, на которую подписана подписка. (Унаследовано от PullSubscription) |
DistributorSecurity |
Возвращает контекст безопасности, используемый для подключения к распространителю. (Унаследовано от PullSubscription) |
DtsPackageLocation |
Возвращает или задает расположение пакета служб DTS, используемое с трансформируемой подпиской. |
DtsPackageName |
Возвращает или задает имя пакета службы DTS, используемое в трансформируемой подписке. |
DtsPackagePassword |
Возвращает или задает пароль, используемый с преобразуемой подпиской. |
EnabledForSynchronizationManager |
Указывает, может ли подписка быть синхронизирована с использованием диспетчера синхронизации Windows. (Унаследовано от PullSubscription) |
FtpAddress |
Возвращает или задает IP-адрес FTP-сервера. (Унаследовано от PullSubscription) |
FtpLogin |
Возвращает или задает имя входа FTP. (Унаследовано от PullSubscription) |
FtpPassword |
Возвращает или задает пароль FTP. (Унаследовано от PullSubscription) |
FtpPort |
Возвращает или задает номер порта на FTP-сервере. (Унаследовано от PullSubscription) |
IsExistingObject |
Возвращает значение, указывающее, существует ли объект на сервере. (Унаследовано от ReplicationObject) |
IsMemoryOptimized |
Представляет подписку по запросу на публикацию транзакций. (Унаследовано от PullSubscription) |
LastAgentDateTime |
Возвращает дату и время последней синхронизации подписки. (Унаследовано от PullSubscription) |
LastAgentStatus |
Возвращает состояние последней по времени синхронизации подписки. (Унаследовано от PullSubscription) |
LastAgentSummary |
Возвращает сводку результатов последней по времени синхронизации подписки. (Унаследовано от PullSubscription) |
LastSummaryDateTime |
Возвращает дату и время завершения последней синхронизации. |
MemoryOptimized |
Представляет подписку по запросу на публикацию транзакций. |
Name |
Возвращает имя, созданное для подписки по запросу. (Унаследовано от PullSubscription) |
PublicationDBName |
Возвращает или задает имя базы данных публикации. (Унаследовано от PullSubscription) |
PublicationName |
Возвращает или задает имя публикации, на которую создана подписка. (Унаследовано от PullSubscription) |
PublisherName |
Возвращает или задает имя издателя. (Унаследовано от PullSubscription) |
PublisherSecurity |
Возвращает или задает контекст безопасности, используемый агентом синхронизации при соединении с издателем. (Унаследовано от PullSubscription) |
SecureFtpPassword |
Возвращает или задает защищенный пароль для имени входа, используемый для подключения к FTP-серверу. (Унаследовано от PullSubscription) |
SqlServerName |
Возвращает имя экземпляра microsoft SQL Server, к которому подключен этот объект. (Унаследовано от ReplicationObject) |
SubscriberSecurity |
Возвращает контекст безопасности, используемый агентом синхронизации при соединении с подписчиком. (Унаследовано от PullSubscription) |
SubscriberType |
Возвращает или задает характер действий по обновлению подписки. |
SubscriptionId |
Возвращает значение идентификатора подписки. (Унаследовано от PullSubscription) |
SubscriptionType |
Возвращает значение, указывающее, предназначена ли регистрация подписки для такой подписки, как принудительная, по запросу или анонимная. (Унаследовано от PullSubscription) |
SynchronizationAgent |
Возвращает объект, представляющий экземпляр агента распространителя, который может использоваться для синхронизации подписки. |
SynchronizationAgentProcessSecurity |
Возвращает контекст безопасности, используемый для указания учетной записи Microsoft Windows, под которой выполняется задание агента синхронизации для синхронизации подписки. (Унаследовано от PullSubscription) |
Type |
Возвращает или задает тип публикации. (Унаследовано от PullSubscription) |
UseFtp |
Возвращает или задает значение, указывающее, может ли агент синхронизации получить доступ к файлам моментального снимка, необходимым для инициализации подписки по запросу, с использованием протокола FTP. (Унаследовано от PullSubscription) |
UserData |
Возвращает или задает свойство объекта, которое позволяет пользователям прикреплять свои собственные данные к объекту. (Унаследовано от ReplicationObject) |
WorkingDirectory |
Возвращает или задает путь каталога в подписчике, который используется для временного сохранения и распаковки загруженных файлов моментального снимка. (Унаследовано от PullSubscription) |
Методы
CheckValidCreation() |
Проверяет создание допустимой репликации. (Унаследовано от ReplicationObject) |
CheckValidDefinition(Boolean) |
Определяет, является ли определение допустимым. (Унаследовано от PullSubscription) |
CommitPropertyChanges() |
Отправляет все кэшированные инструкции изменения свойств экземпляру Microsoft SQL Server. (Унаследовано от ReplicationObject) |
Create() |
Создает подписку по запросу на подписчике. (Унаследовано от PullSubscription) |
CustomEnabledForSyncMgr(StringBuilder) |
Разрешает пользовательскую публикацию для синхронного диспетчера. (Унаследовано от PullSubscription) |
Decouple() |
Отделяет связанный объект репликации от сервера. (Унаследовано от ReplicationObject) |
DoUpdateMemoryOptimizedProperty(String) |
Представляет подписку по запросу на публикацию транзакций. |
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() |
Отмечает подписку по запросу для повторной инициализации. |
Remove() |
Удаляет подписку по запросу. (Унаследовано от PullSubscription) |
Script(ScriptOptions) |
Возвращает скрипт Transact-SQL для создания или удаления подписки по запросу на основе текущего PullSubscription значения свойства объекта . (Унаследовано от PullSubscription) |
StopSynchronizationJob() |
Пытается остановить запущенное задание агента распространителя, в настоящее время синхронизирующего подписку. |
SynchronizeWithJob() |
Запускает задание агента для синхронизации подписки. |