TransSynchronizationAgent 类

定义

提供复制分发代理的功能。

public ref class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::ITransSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")]
public class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.ITransSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")>]
type TransSynchronizationAgent = class
    inherit MarshalByRefObject
    interface IDisposable
    interface ITransSynchronizationAgent
Public Class TransSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, ITransSynchronizationAgent
继承
TransSynchronizationAgent
属性
实现

示例

在以下示例中,该方法Synchronize在从SynchronizationAgent属性访问的TransSynchronizationAgent类实例上调用,以同步推送订阅。

// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";

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

TransSubscription subscription;

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

    // Define the push subscription.
    subscription = new TransSubscription();
    subscription.ConnectionContext = conn;
    subscription.DatabaseName = publicationDbName;
    subscription.PublicationName = publicationName;
    subscription.SubscriptionDBName = subscriptionDbName;
    subscription.SubscriberName = subscriberName;

    // If the push subscription exists, start the synchronization.
    if (subscription.LoadProperties())
    {
        // Check that we have enough metadata to start the agent.
        if (subscription.SubscriberSecurity != null)
        {
            // Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize();
        }
        else
        {
            throw new ApplicationException("There is insufficent metadata to " +
                "synchronize the subscription. Recreate the subscription with " +
                "the agent job or supply the required agent properties at run time.");
        }
    }
    else
    {
        // Do something here if the push subscription does not exist.
        throw new ApplicationException(String.Format(
            "The subscription to '{0}' does not exist on {1}",
            publicationName, subscriberName));
    }
}
catch (Exception ex)
{
    // Implement appropriate error handling here.
    throw new ApplicationException("The subscription could not be synchronized.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

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

Dim subscription As TransSubscription

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

    ' Define the push subscription.
    subscription = New TransSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = publicationDbName
    subscription.PublicationName = publicationName
    subscription.SubscriptionDBName = subscriptionDbName
    subscription.SubscriberName = subscriberName

    ' If the push subscription exists, start the synchronization.
    If subscription.LoadProperties() Then
        ' Check that we have enough metadata to start the agent.
        If Not subscription.SubscriberSecurity Is Nothing Then

            ' Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize()
        Else
            Throw New ApplicationException("There is insufficent metadata to " + _
             "synchronize the subscription. Recreate the subscription with " + _
             "the agent job or supply the required agent properties at run time.")
        End If
    Else
        ' Do something here if the push subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "The subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
    conn.Disconnect()
End Try

注解

TransSynchronizationAgent 类支持以编程方式将订阅同步到事务发布或快照发布的功能。

构造函数

TransSynchronizationAgent()

创建 TransSynchronizationAgent 类的实例。

属性

AltSnapshotFolder

获取或设置订阅的备用快照文件夹。

ComErrorCollection

获取复制代理生成的错误的集合。

Distributor

获取或设置充当订阅分发服务器的 Microsoft SQL Server实例的名称。

DistributorAddress

获取或设置在指定 DistributorNetwork 属性时用于连接到分发服务器的网络地址。

DistributorEncryptedPassword

获取或设置使用SQL Server身份验证连接到分发服务器时使用的加密密码。

DistributorLogin

获取或设置使用SQL Server身份验证连接到分发服务器时使用的登录名。

DistributorNetwork

获取或设置连接到分发服务器时使用的客户端Net-Library。

DistributorPassword

获取或设置使用SQL Server身份验证连接到分发服务器时使用的密码。

DistributorSecurityMode

获取或设置在连接到分发服务器时使用的安全模式。

DtsPackageFileName

获取或设置在命令行集应用于订阅服务器之前用于转换它们的 Microsoft SQL Server 2000 Data Transformation Services (DTS) 包的名称和路径。

DtsPackagePassword

获取或设置用于访问由属性指定的 Microsoft SQL Server 2000 数据转换服务 (DTS) 包的DtsPackageFileName所有者密码。

FileTransferType

获取或设置初始快照文件传输到订阅服务器的方式。

HostName

获取或设置使用的主机名。

LastUpdatedTime

获取复制代理上次同步订阅的时间的时间戳。

LoginTimeout

获取或设置等待建立连接的最大秒数。

MaxDeliveredTransactions

获取或设置在单个代理执行过程中应用于订阅服务器的事务的最大数目。

Output

获取或设置代理输出文件的文件名和路径。

OutputVerboseLevel

获取或设置在代理输出文件中由分发代理记录的信息量。

ProfileName

获取或设置代理使用的配置文件的名称。

Publication

获取或设置发布的名称。

Publisher

获取或设置作为订阅的发布服务器的 Microsoft SQL Server 实例的名称。

PublisherDatabase

获取或设置发布数据库的名称。

QueryTimeout

获取或设置允许内部查询完成的秒数。

SecureDistributorEncryptedPassword

获取或设置分发服务器的安全加密密码。

SecureSubscriberEncryptedPassword

获取或设置订阅服务器的安全加密密码。

SkipErrors

获取或设置此代理要跳过的错误号的以冒号分隔的列表。

Subscriber

获取或设置订阅者 Microsoft SQL Server实例的名称。

SubscriberDatabase

获取或设置订阅数据库的名称。

SubscriberDatabasePath

获取或设置订阅服务器的数据库路径。

SubscriberDataSourceType

获取或设置用作订阅服务器的数据源的类型。

SubscriberEncryptedPassword

获取或设置订阅服务器的加密密码。

SubscriberLogin

获取或设置使用SQL Server身份验证连接到订阅服务器时使用的登录名。

SubscriberPassword

获取或设置使用SQL Server身份验证连接到订阅服务器时使用的密码。

SubscriberSecurityMode

获取或设置连接到发布服务器时使用的安全模式。

SubscriptionType

获取或设置订阅是推送订阅还是请求订阅。

UndeliveredCommands

获取未交付的命令数。

UndeliveredTransactions

获取未交付的事务数。

UseInProcLoader

获取或设置一个值,该值指示在订阅服务器上应用快照文件时是否使用 BULK INSERT 命令。

WorkingDirectory

获取或设置在使用文件传输协议 (FTP) 时从其访问快照文件的工作目录。

方法

Abort()

中止 TransSynchronizationAgent 操作。

Dispose()

释放 TransSynchronizationAgent 类的当前实例所使用的所有资源。

Dispose(Boolean)

释放 TransSynchronizationAgent 类使用的所有资源。

Finalize()

确定 TransSynchronizationAgent

IsSnapshotRequired()

连接到分发服务器和订阅服务器以便确定在下一个代理同步过程中是否将应用新快照。

Synchronize()

启动分发代理以便同步订阅。

事件

ComStatus

在分发代理返回同步 Com 状态信息时发生。

Status

在分发代理返回同步状态信息时发生。

适用于

线程安全性

TransSynchronizationAgent 类不支持多线程单元。 可以通过在作为应用程序的主要入口点的方法上声明 [STAThread] 属性来指定单线程单元。 这是使用 Microsoft Visual Studio 创建的基于 Microsoft Windows 的应用程序的默认值。