TransSynchronizationAgent 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供复制分发代理的功能。
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() | |
IsSnapshotRequired() |
连接到分发服务器和订阅服务器以便确定在下一个代理同步过程中是否将应用新快照。 |
Synchronize() |
启动分发代理以便同步订阅。 |
事件
ComStatus |
在分发代理返回同步 Com 状态信息时发生。 |
Status |
在分发代理返回同步状态信息时发生。 |
适用于
线程安全性
该 TransSynchronizationAgent 类不支持多线程单元。 可以通过在作为应用程序的主要入口点的方法上声明 [STAThread]
属性来指定单线程单元。 这是使用 Microsoft Visual Studio 创建的基于 Microsoft Windows 的应用程序的默认值。