TransSynchronizationAgent 类

定义

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

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该方法在从该属性访问TransSynchronizationAgent的类实例SynchronizationAgent上调用以同步推送订阅。

// 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 数据转换服务(DTS)包的名称和路径,用于在应用到订阅者之前转换命令行集。

DtsPackagePassword

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

FileTransferType

获取或设置初始快照文件如何传输给订阅者。

HostName

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

LastUpdatedTime

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

LoginTimeout

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

MaxDeliveredTransactions

获取或设定在单个代理执行中应用到订阅者的最大事务数。

Output

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

OutputVerboseLevel

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

ProfileName

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

Publication

获取或确定出版物名称。

Publisher

获取或设置订阅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

当分发代理返回同步通信状态信息时,发生在该事件中。

Status

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

适用于

线程安全性

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