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

설명

풀 구독의 경우, 배포 에이전트가 가입자에서 실행됩니다.

스레드 안전성

이 유형의 공용 정적(SharedMicrosoft Visual Basic) 멤버는 멀티스레드 연산에 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하게 보호되지 않습니다.

생성자

Name Description
TransPullSubscription()

TransPullSubscription 클래스의 새 인스턴스를 만듭니다.

TransPullSubscription(String, String, String, String, ServerConnection, Boolean)

풀 구독을 정의하는 속성과 구독에 대한 에이전트 작업을 생성할지 여부를 결정하는 새로운 클래스 인스턴스 TransPullSubscription 를 생성합니다.

TransPullSubscription(String, String, String, String, ServerConnection)

풀 구독을 정의하는 속성을 가진 클래스의 TransPullSubscription 새 인스턴스를 생성합니다.

속성

Name Description
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

풀 구독에 대한 텍스트 설명을 받거나 설정합니다.

(다음에서 상속됨 PullSubscription)
DistributorName

배포자로서 구독이 구독하는 출판물을 배포하는 Microsoft SQL Server 인스턴스를 받거나 설정합니다.

(다음에서 상속됨 PullSubscription)
DistributorSecurity

배포자와 연결하는 데 사용되는 보안 컨텍스트를 얻습니다.

(다음에서 상속됨 PullSubscription)
DtsPackageLocation

변환 가능한 구독과 함께 사용되는 데이터 변환 서비스(DTS) 패키지의 위치를 획득하거나 설정합니다.

DtsPackageName

변환 가능한 구독에서 사용되는 데이터 변환 서비스(DTS) 패키지 이름을 받거나 설정합니다.

DtsPackagePassword

변환 가능한 구독과 함께 사용하는 비밀번호를 받거나 설정합니다.

EnabledForSynchronizationManager

구독이 동기화 관리자(Synchronization Manager)를 사용해 동기화될 수 있는지 여부를 명시Windows.

(다음에서 상속됨 PullSubscription)
FtpAddress

FTP 서버의 IP 주소를 받거나 설정합니다.

(다음에서 상속됨 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

Publisher의 이름을 얻거나 설정합니다.

(다음에서 상속됨 PullSubscription)
PublisherSecurity

동기화 에이전트가 Publisher에 연결할 때 사용하는 보안 컨텍스트를 얻거나 설정합니다.

(다음에서 상속됨 PullSubscription)
SecureFtpPassword

FTP 서버에 접속하는 로그인의 보안 비밀번호를 받거나 설정합니다.

(다음에서 상속됨 PullSubscription)
SqlServerName

이 객체가 연결된 Microsoft SQL Server 인스턴스의 이름을 얻습니다.

(다음에서 상속됨 ReplicationObject)
SubscriberSecurity

가입자와 연결할 때 동기화 에이전트가 사용하는 보안 컨텍스트를 얻습니다.

(다음에서 상속됨 PullSubscription)
SubscriberType

구독의 업데이트 동작을 받거나 설정합니다.

SubscriptionId

구독 ID 값을 얻습니다.

(다음에서 상속됨 PullSubscription)
SubscriptionType

구독 등록이 푸시, 풀, 익명 구독인지 알 수 있습니다.

(다음에서 상속됨 PullSubscription)
SynchronizationAgent

구독을 동기화하는 데 사용할 수 있는 배포 에이전트의 인스턴스를 나타내는 객체를 얻습니다.

SynchronizationAgentProcessSecurity

구독을 동기화하기 위해 동기화 에이전트 작업이 실행되는 Microsoft Windows 계정을 지정하는 보안 컨텍스트를 얻습니다.

(다음에서 상속됨 PullSubscription)
Type

출판 유형을 받거나 설정합니다.

(다음에서 상속됨 PullSubscription)
UseFtp

풀 구독을 초기화하는 데 필요한 스냅샷 파일을 파일 전송 프로토콜(FTP)을 사용하여 동기화 에이전트가 접근하는지 여부에 대해 받거나 설정합니다.

(다음에서 상속됨 PullSubscription)
UserData

사용자가 자신의 데이터를 객체에 부착할 수 있도록 객체 속성을 얻거나 설정합니다.

(다음에서 상속됨 ReplicationObject)
WorkingDirectory

다운로드한 스냅샷 파일을 임시로 저장하고 압축 해제하는 데 사용되는 구독자의 디렉터리 경로를 획득하거나 설정합니다.

(다음에서 상속됨 PullSubscription)

메서드

Name Description
CheckValidCreation()

유효한 복제 생성을 확인합니다.

(다음에서 상속됨 ReplicationObject)
CheckValidDefinition(Boolean)

정의가 유효한지 여부를 나타냅니다.

(다음에서 상속됨 PullSubscription)
CommitPropertyChanges()

모든 캐시된 속성 변경 문장을 Microsoft SQL Server 인스턴스로 전송합니다.

(다음에서 상속됨 ReplicationObject)
Create()

구독자 계정에서 풀 구독을 생성합니다.

(다음에서 상속됨 PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

동기 관리자용 커스텀 퍼블리싱을 가능하게 합니다.

(다음에서 상속됨 PullSubscription)
Decouple()

참조된 복제 객체를 서버와 분리합니다.

(다음에서 상속됨 ReplicationObject)
DoUpdateMemoryOptimizedProperty(String)

트랜잭션 출판물에 대한 풀 구독을 나타냅니다.

GetChangeCommand(StringBuilder, String, String)

복제에서 change 명령을 반환합니다.

(다음에서 상속됨 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()

재초기화 시 풀 구독을 표시합니다.

Remove()

풀 구독을 제거합니다.

(다음에서 상속됨 PullSubscription)
Script(ScriptOptions)

현재 객체의 속성 설정 PullSubscription 에 따라 풀 구독을 생성하거나 삭제하는 Transact-SQL 스크립트를 반환합니다.

(다음에서 상속됨 PullSubscription)
StopSynchronizationJob()

현재 구독을 동기화 중인 실행 중인 배포 에이전트 작업을 중단하려고 시도합니다.

SynchronizeWithJob()

구독을 동기화하기 위해 에이전트 작업을 시작합니다.

적용 대상

추가 정보