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