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
Наследование
TransPullSubscription

Примеры

// 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()

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

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

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