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

注解

线程安全性

任何此类公共静态(SharedMicrosoft Visual Basic)成员对多线程操作都是安全的。 不能保证任何实例成员是线程安全的。

构造函数

名称 说明
TransPublication()

创建类的新实例 TransPublication

TransPublication(String, String, ServerConnection, Boolean)

创建一个具备所需属性的新类实例TransPublication,并指示是否创建了该发布的 快照代理 作业。

TransPublication(String, String, ServerConnection)

创建一个具备所需属性的 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;如果 PeerConflictDetectionEnabled 设置为 true,该 ID 用于冲突检测。

PostSnapshotScript

获取或设置 Transact-SQL 脚本文件的名称和完整路径,该文件在初始快照应用后执行。

(继承自 Publication)
PreSnapshotScript

获取或设置在初始快照应用到订阅者之前执行的 Transact-SQL 脚本文件的名称和完整路径。

(继承自 Publication)
PubId

获得唯一标识该出版物的值。

(继承自 Publication)
PublisherName

获得或设定非SQL Server Publisher的名称。

QueueType

获取或设置用于允许排队更新订阅的发布的队列类型。

ReplicateDdl

获取或设置数据定义语言(DDL)复制选项,以决定DDL变更是否被复制。

(继承自 Publication)
RetentionPeriod

当订阅未与出版物同步时,它会获得或设定订阅到期前的时间。

(继承自 Publication)
SecureFtpPassword

为登录登录的对象设置密码(作为 SecureString 对象),用于连接允许通过FTP初始化订阅的发布文件传输协议(FTP)。

(继承自 Publication)
SnapshotAgentExists

获取是否存在 SQL Server 代理 作业以生成本出版物的初始快照。

(继承自 Publication)
SnapshotAvailable

查看本出版物的快照文件是否可供使用。

SnapshotGenerationAgentProcessSecurity

获取一个对象,设置Windows账户,从而运行快照代理作业。

(继承自 Publication)
SnapshotGenerationAgentPublisherSecurity

获取 快照代理 用于连接 Publisher 的安全上下文。

(继承自 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)

有权限访问 Publisher 的退货登录。

(继承自 Publication)
EnumSubscriptions()

退还订阅该刊物的订阅用户。

(继承自 Publication)
GetChangeCommand(StringBuilder, String, String)

返回复制中的更改命令。

(继承自 ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

返回复制中的create命令。

(继承自 ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

返回复制中的drop命令。

(继承自 ReplicationObject)
GrantPublicationAccess(String)

将指定的登录地址添加到出版访问列表(PAL)。

(继承自 Publication)
InternalRefresh(Boolean)

从复制中启动内部刷新。

(继承自 ReplicationObject)
Load()

从服务器加载现有对象的属性。

(继承自 ReplicationObject)
LoadProperties()

从服务器加载现有对象的属性。

(继承自 ReplicationObject)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

代表交易性出版物。

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

在Publisher注册拉取订阅。

PostTracerToken()

在Publisher日志中发布一个追踪令牌,以开始确定延迟的过程。

Refresh()

重新加载对象的属性。

(继承自 ReplicationObject)
RefreshSubscriptions()

更新所有出版物订阅,以包含任何新增的文章。

ReinitializeAllSubscriptions()

将所有订阅标记为重新初始化。

ReinitializeAllSubscriptions(Boolean)

标记所有发布订阅进行重新初始化,并可选择废除现有快照。

Remove()

删除已有的出版物。

(继承自 Publication)
Remove(Boolean)

即使无法访问分发商,也能移除已有的出版物。

(继承自 Publication)
RemovePullSubscription(String, String)

移除了Publisher拉取订阅的注册。

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)

调用指定订阅的内联发布验证。

适用于

另请参阅