다음을 통해 공유


TransPublication 클래스

정의

트랜잭션 게시를 나타냅니다.

public ref class TransPublication sealed : Microsoft::SqlServer::Replication::Publication
public sealed class TransPublication : Microsoft.SqlServer.Replication.Publication
type TransPublication = class
    inherit Publication
Public NotInheritable Class TransPublication
Inherits Publication
상속

예제

다음 예에서는 트랜잭션 게시를 만듭니다.

// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";
string publisherName = publisherInstance;

ReplicationDatabase publicationDb;
TransPublication publication;

// Create a connection to the Publisher using Windows Authentication.
ServerConnection conn;
conn = new ServerConnection(publisherName);


try
{
    // Connect to the Publisher.
    conn.Connect();

    // Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);

    // If the database exists and is not already enabled, 
    // enable it for transactional publishing.
    if (publicationDb.LoadProperties())
    {
        if (!publicationDb.EnabledTransPublishing)
        {
            publicationDb.EnabledTransPublishing = true;
        }

        // If the Log Reader Agent does not exist, create it.
        if (!publicationDb.LogReaderAgentExists)
        {
            // Specify the Windows account under which the agent job runs.
            // This account will be used for the local connection to the 
            // Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin;
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword;

            // Explicitly set authentication mode for the Publisher connection
            // to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = true;

            // Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent();
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} database does not exist at {1}.",
            publicationDb, publisherName));
    }

    // Set the required properties for the transactional publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional;

    // Activate the publication so that we can add subscriptions.
    publication.Status = State.Active;

    // Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes |= PublicationAttributes.AllowPull;
    publication.Attributes |= PublicationAttributes.AllowPush;
    publication.Attributes |= PublicationAttributes.IndependentAgent;

    // Specify the Windows account under which the Snapshot Agent job runs.
    // This account will be used for the local connection to the 
    // Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

    // Explicitly set the security mode for the Publisher connection
    // Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

    if (!publication.IsExistingObject)
    {
        // Create the transactional publication.
        publication.Create();

        // Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent();
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} publication already exists.", publicationName));
    }
}

catch (Exception ex)
{
    // Implement custom application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be created.", publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance

Dim publicationDb As ReplicationDatabase
Dim publication As TransPublication

' Create a connection to the Publisher using Windows Authentication.
Dim conn As ServerConnection
conn = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    ' If the database exists and is not already enabled, 
    ' enable it for transactional publishing.
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledTransPublishing Then
            publicationDb.EnabledTransPublishing = True
        End If

        ' If the Log Reader Agent does not exist, create it.
        If Not publicationDb.LogReaderAgentExists Then
            ' Specify the Windows account under which the agent job runs.
            ' This account will be used for the local connection to the 
            ' Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword

            ' Explicitly set authentication mode for the Publisher connection
            ' to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = True

            ' Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent()
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist at {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional

    'Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPull
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPush
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.IndependentAgent

    ' Activate the publication so that we can add subscriptions.
    publication.Status = State.Active

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    If Not publication.IsExistingObject Then
        ' Create the transactional publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

다음은 트랜잭션 게시를 삭제하는 예제입니다.

// Define the Publisher, publication database, 
// and publication names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";

TransPublication publication;
ReplicationDatabase publicationDb;

// Create a connection to the Publisher 
// using Windows Authentication.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    conn.Connect();

    // Set the required properties for the transactional publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // Delete the publication, if it exists and has no subscriptions.
    if (publication.LoadProperties() && !publication.HasSubscription)
    {
        publication.Remove();
    }
    else
    {
        // Do something here if the publication does not exist
        // or has subscriptions.
        throw new ApplicationException(String.Format(
            "The publication {0} could not be deleted. " +
            "Ensure that the publication exists and that all " +
            "subscriptions have been deleted.",
            publicationName, publisherName));
    }

    // If no other transactional publications exists,
    // disable publishing on the database.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);
    if (publicationDb.LoadProperties())
    {
        if (publicationDb.TransPublications.Count == 0)
        {
            publicationDb.EnabledTransPublishing = false;
        }
    }
    else
    {
        // Do something here if the database does not exist.
        throw new ApplicationException(String.Format(
            "The database {0} does not exist on {1}.",
            publicationDbName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be deleted.",
        publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication database, 
' and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication
Dim publicationDb As ReplicationDatabase

' Create a connection to the Publisher 
' using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    conn.Connect()

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Delete the publication, if it exists and has no subscriptions.
    If publication.LoadProperties() And Not publication.HasSubscription Then
        publication.Remove()
    Else
        ' Do something here if the publication does not exist
        ' or has subscriptions.
        Throw New ApplicationException(String.Format( _
         "The publication {0} could not be deleted. " + _
         "Ensure that the publication exists and that all " + _
         "subscriptions have been deleted.", _
         publicationName, publisherName))
    End If

    ' If no other transactional publications exists,
    ' disable publishing on the database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If publicationDb.TransPublications.Count = 0 Then
            publicationDb.EnabledTransPublishing = False
        End If
    Else
        ' Do something here if the database does not exist.
        Throw New ApplicationException(String.Format( _
         "The database {0} does not exist on {1}.", _
         publicationDbName, publisherName))
    End If
Catch ex As Exception
    ' Implement application error handling here.
    Throw New ApplicationException(String.Format( _
     "The publication {0} could not be deleted.", _
     publicationName), ex)
Finally
    conn.Disconnect()
End Try

설명

스레드 보안

이 형식의 모든 공용 정적(Shared Microsoft Visual Basic의 경우) 멤버는 다중 스레드 작업에 안전합니다. 인스턴스 구성원은 스레드로부터의 안전성이 보장되지 않습니다.

생성자

TransPublication()

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

TransPublication(String, String, ServerConnection)

필요한 속성을 사용하여 TransPublication 클래스의 새 인스턴스를 만듭니다.

TransPublication(String, String, ServerConnection, Boolean)

필요한 속성을 사용하여 TransPublication 클래스의 새 인스턴스를 만들고, 게시에 대한 스냅숏 에이전트 작업이 만들어지는지 여부를 나타냅니다.

속성

AltSnapshotFolder

게시에 대한 대체 스냅샷 파일 위치를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
Attributes

게시 특성을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
CachePropertyChanges

복제 속성에 대한 변경 내용을 캐시할지 아니면 즉시 적용할지를 가져오거나 설정합니다.

(다음에서 상속됨 ReplicationObject)
CompatibilityLevel

참조된 게시에서 지원할 수 있는 구독자에서 실행되는 Microsoft SQL Server 초기 버전을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
ConflictPolicy

업데이트 구독을 지원하는 게시에 대한 충돌 정책을 가져오거나 설정합니다.

ConflictRetention

충돌 데이터 행이 충돌 테이블에 유지되는 일 수를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
ConnectionContext

Microsoft SQL Server 인스턴스에 대한 연결을 가져오거나 설정합니다.

(다음에서 상속됨 ReplicationObject)
ContinueOnConflict

충돌이 검색된 후 배포 에이전트에서 변경 내용을 계속 처리할지 여부를 결정합니다.

CreateSnapshotAgentByDefault

게시를 만들 때 스냅숏 에이전트 작업이 자동으로 추가되는지 여부를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
DatabaseName

게시 데이터베이스의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
Description

게시에 대한 텍스트 설명을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
FtpAddress

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버 컴퓨터의 주소를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
FtpLogin

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버에 연결하는 데 사용되는 로그인을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
FtpPassword

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버에 연결하는 데 사용되는 로그인 암호를 설정합니다.

(다음에서 상속됨 Publication)
FtpPort

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버 컴퓨터의 포트를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
FtpSubdirectory

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버 컴퓨터의 하위 디렉터리를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
HasSubscription

게시에 하나 이상의 구독이 있는지 여부를 가져옵니다.

(다음에서 상속됨 Publication)
IsExistingObject

서버에 개체가 있는지 여부를 가져옵니다.

(다음에서 상속됨 ReplicationObject)
Name

게시의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
PeerConflictDetectionEnabled

SetPeerConflictDetection(Boolean, Int32)을 사용하여 피어 투 피어 충돌 검색을 설정했는지 여부를 가져옵니다.

PeerOriginatorID

피어 투 피어 토폴로지에서 노드의 ID를 가져옵니다. 이 ID는 PeerConflictDetectionEnabledtrue로 설정된 경우 충돌 검색에 사용됩니다.

PostSnapshotScript

초기 스냅샷이 구독자에 적용된 후 실행되는 Transact-SQL 스크립트 파일의 이름과 전체 경로를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
PreSnapshotScript

초기 스냅샷이 구독자에 적용되기 전에 실행되는 Transact-SQL 스크립트 파일의 이름과 전체 경로를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
PubId

게시를 고유하게 식별하는 값을 가져옵니다.

(다음에서 상속됨 Publication)
PublisherName

SQL Server 이외의 게시자 이름을 가져오거나 설정합니다.

QueueType

지연 업데이트 구독을 허용하는 게시에 사용할 큐 유형을 가져오거나 설정합니다.

ReplicateDdl

DDL(데이터 정의 언어) 변경 내용이 복제되는지 여부를 결정하는 DDL 복제 옵션을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
RetentionPeriod

구독이 게시와 동기화되지 않은 경우 구독이 만료될 때까지의 시간을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
SecureFtpPassword

FTP(파일 전송 프로토콜)를 통해 구독 초기화를 허용하는 게시의 경우 FTP 서버에 연결하는 데 사용되는 로그인 암호를 SecureString 개체 형식으로 설정합니다.

(다음에서 상속됨 Publication)
SnapshotAgentExists

이 게시에 대한 초기 스냅샷을 생성하기 위한 SQL Server 에이전트 작업이 있는지를 가져옵니다.

(다음에서 상속됨 Publication)
SnapshotAvailable

이 게시에 대한 스냅샷 파일을 사용할 수 있는지 여부를 가져옵니다.

SnapshotGenerationAgentProcessSecurity

스냅숏 에이전트 작업이 실행되는 Windows 계정을 설정하는 개체를 가져옵니다.

(다음에서 상속됨 Publication)
SnapshotGenerationAgentPublisherSecurity

스냅숏 에이전트에서 게시자에 연결하는 데 사용하는 보안 컨텍스트를 가져옵니다.

(다음에서 상속됨 Publication)
SnapshotJobId

현재 게시에 대한 스냅숏 에이전트 작업 ID를 가져옵니다.

(다음에서 상속됨 Publication)
SnapshotMethod

초기 스냅샷의 데이터 파일 형식을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
SnapshotSchedule

현재 게시에 대한 스냅숏 에이전트의 일정을 설정하는 개체를 가져옵니다.

(다음에서 상속됨 Publication)
SqlServerName

이 개체가 연결된 Microsoft SQL Server 인스턴스의 이름을 가져옵니다.

(다음에서 상속됨 ReplicationObject)
Status

게시의 상태를 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
TransArticles

게시의 아티클을 나타냅니다.

TransSubscriptions

게시에 대한 구독을 나타냅니다.

Type

게시 유형을 가져오거나 설정합니다.

(다음에서 상속됨 Publication)
UserData

사용자가 자신의 고유 데이터를 개체에 연결할 수 있도록 하는 개체 속성을 가져오거나 설정합니다.

(다음에서 상속됨 ReplicationObject)

메서드

BrowseSnapshotFolder(String, String)

특정 구독에 대해 스냅샷 파일이 생성된 위치의 전체 경로를 반환합니다.

CheckValidCreation()

유효한 복제 만들기를 확인합니다.

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

유효한 정의를 검사할지 여부를 나타냅니다.

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

캐시된 모든 속성 변경 문을 Microsoft SQL Server 인스턴스로 보냅니다.

(다음에서 상속됨 ReplicationObject)
CopySnapshot(String, String, String)

특정 구독에 대한 최신 스냅샷 파일을 대상 폴더에 복사합니다.

Create()

게시를 만듭니다.

(다음에서 상속됨 Publication)
CreateSnapshotAgent()

이 작업이 아직 없는 경우 게시에 대한 초기 스냅샷을 생성하는 데 사용되는 SQL Server 에이전트 작업을 만듭니다.

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

참조된 복제 개체를 서버에서 분리합니다.

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

게시의 아티클을 반환합니다.

(다음에서 상속됨 Publication)
EnumPublicationAccesses(Boolean)

게시자에 액세스할 수 있는 로그인을 반환합니다.

(다음에서 상속됨 Publication)
EnumSubscriptions()

게시를 구독하는 구독을 반환합니다.

(다음에서 상속됨 Publication)
GetChangeCommand(StringBuilder, String, String)

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

(다음에서 상속됨 ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

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

(다음에서 상속됨 ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

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

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

지정된 로그인을 PAL(게시 액세스 목록)에 추가합니다.

(다음에서 상속됨 Publication)
InternalRefresh(Boolean)

복제에서 내부 새로 고침을 시작합니다.

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

서버에서 기존 개체의 속성을 로드합니다.

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

서버에서 기존 개체의 속성을 로드합니다.

(다음에서 상속됨 ReplicationObject)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

게시자에서 끌어오기 구독을 등록합니다.

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

트랜잭션 게시를 나타냅니다.

PostTracerToken()

추적 프로그램 토큰을 게시자 로그에 게시하여 대기 시간 확인 프로세스를 시작합니다.

Refresh()

개체의 속성을 다시 로드합니다.

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

게시에 대한 모든 구독을 업데이트하여 새로 추가된 아티클을 포함합니다.

ReinitializeAllSubscriptions()

게시에 대한 모든 구독을 다시 초기화하도록 표시합니다.

ReinitializeAllSubscriptions(Boolean)

기존 스냅샷을 무효화하는 옵션과 함께 게시에 대한 모든 구독을 다시 초기화하도록 표시합니다.

Remove()

기존 게시를 제거합니다.

(다음에서 상속됨 Publication)
Remove(Boolean)

배포자에 액세스할 수 없는 경우에도 기존 게시를 제거합니다.

(다음에서 상속됨 Publication)
RemovePullSubscription(String, String)

게시자에서 끌어오기 구독 등록을 제거합니다.

ReplicateUserDefinedScript(String)

사용자 정의 스크립트 실행을 지정된 게시의 구독자에 복제합니다.

(다음에서 상속됨 Publication)
RevokePublicationAccess(String)

지정된 로그인을 PAL(게시 액세스 목록)에서 제거합니다.

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

스크립트 옵션에서 지정한 대로 게시를 다시 만드는 데 사용할 수 있는 Transact-SQL 스크립트를 생성합니다.

(다음에서 상속됨 Publication)
SetPeerConflictDetection(Boolean, Int32)

피어 투 피어 토폴로지에서 노드에 대해 충돌 검색을 사용하거나 사용하지 않도록 설정합니다.

StartSnapshotGenerationAgentJob()

게시에 대한 초기 스냅샷을 생성하는 작업을 시작합니다.

(다음에서 상속됨 Publication)
StopSnapshotGenerationAgentJob()

실행 중인 스냅숏 에이전트 작업을 중지하려고 합니다.

(다음에서 상속됨 Publication)
ValidatePublication(ValidationOption, ValidationMethod, Boolean)

모든 구독에 대한 인라인 게시 유효성 검사를 호출합니다.

ValidateSubscriptions(String[], String[], ValidationOption, ValidationMethod, Boolean)

지정된 구독에 대한 인라인 게시 유효성 검사를 호출합니다.

적용 대상

추가 정보