Поделиться через


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

Комментарии

Для подписки по запросу агент распространения выполняется на подписчике.

Потокобезопасность

Все общедоступные статические элементы (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()

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

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

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