TransSubscription 类

定义

表示对事务发布或快照发布的推送订阅。

public ref class TransSubscription sealed : Microsoft::SqlServer::Replication::Subscription
public sealed class TransSubscription : Microsoft.SqlServer.Replication.Subscription
type TransSubscription = class
    inherit Subscription
Public NotInheritable Class TransSubscription
Inherits Subscription
继承

示例

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

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

           // Create the objects that we need.
           TransPublication publication;
           TransSubscription subscription;

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

               // Ensure that the publication exists and that 
               // it supports push subscriptions.
               publication = new TransPublication();
               publication.Name = publicationName;
               publication.DatabaseName = publicationDbName;
               publication.ConnectionContext = conn;

               if (publication.IsExistingObject)
               {
                   if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
                   {
                       publication.Attributes |= PublicationAttributes.AllowPush;
                   }

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

                   // Specify the Windows login credentials for the Distribution Agent job.
                   subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
                   subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

                   // By default, subscriptions to transactional publications are synchronized 
                   // continuously, but in this case we only want to synchronize on demand.
                   subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;

                   // Create the push subscription.
                   subscription.Create();
               }
               else
               {
                   // Do something here if the publication does not exist.
                   throw new ApplicationException(String.Format(
                       "The publication '{0}' does not exist on {1}.",
                       publicationName, publisherName));
               }
           }
           catch (Exception ex)
           {
               // Implement the appropriate error handling here.
               throw new ApplicationException(String.Format(
                   "The subscription to {0} could not be created.", publicationName), ex);
           }
           finally
           {
               conn.Disconnect();
           }
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

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

' Create the objects that we need.
Dim publication As TransPublication
Dim subscription As TransSubscription

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

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New TransPublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = conn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPush
        End If

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

        ' Specify the Windows login credentials for the Distribution Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' By default, subscriptions to transactional publications are synchronized 
        ' continuously, but in this case we only want to synchronize on demand.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand

        ' Create the push subscription.
        subscription.Create()
    Else
        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If

Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
        "The subscription to {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

注解

使用远程分发服务器配置发布服务器时,为所有参数(包括 SynchronizationAgentProcessSecurity)提供的值将作为纯文本发送到分发服务器。 调用 Create 方法之前,应先对发布服务器与其远程分发服务器之间的连接进行加密。 有关详细信息,请参阅 sp_reinitsubscription (Transact-SQL)

当订阅属于非SQL Server发布服务器时, ConnectionContext 属性设置为分发服务器而不是发布服务器, DatabaseName 属性设置为分发数据库而不是发布数据库, 属性PublisherName设置为非SQL Server发布服务器的名称。

线程安全性

Microsoft Visual Basic) 此类型成员中的任何公共静态 Shared (对于多线程操作都是安全的。 但不保证所有实例成员都是线程安全的。

构造函数

TransSubscription()

创建 TransSubscription 类的新实例。

TransSubscription(String, String, String, String, ServerConnection)

使用指定的发布、数据库、订阅服务器和订阅服务器数据库以及与 Microsoft SQL Server 实例的指定连接创建 类的新TransSubscription实例。

属性

AgentJobId

获取用来同步订阅的代理作业的 ID。

(继承自 Subscription)
AgentOffload

获取或设置同步代理是否在创建代理作业的计算机之外的计算机上运行。 运行 Microsoft SQL Server 2005 及更高版本的分发服务器不再支持此属性。

(继承自 Subscription)
AgentOffloadServer

获取或设置使用远程代理激活时代理运行于其上的远程计算机的名称。

(继承自 Subscription)
AgentSchedule

获取用于同步订阅的代理作业的计划。

(继承自 Subscription)
BackupInformation

获取或设置从备份初始化订阅所需的信息。

CachePropertyChanges

获取或设置是缓存对复制属性所做的更改还是立即应用它们。

(继承自 ReplicationObject)
ConnectionContext

获取或设置与 Microsoft SQL Server 实例的连接。

(继承自 ReplicationObject)
CreateSyncAgentByDefault

获取或设置默认情况下是否创建用于同步订阅的代理作业。

(继承自 Subscription)
DatabaseName

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

(继承自 Subscription)
DtsPackageLocation

获取或设置 Microsoft SQL Server 2000 Data Transformation Services (DTS) 包的位置。

DtsPackageName

获取或设置在订阅服务器上应用的 Microsoft SQL Server 2000 Data Transformation Services (DTS) 包的名称。

DtsPackagePassword

设置用于运行 Microsoft SQL Server 2000 Data Transformation Services (DTS) 包的密码。

EnabledForSynchronizationManager

指定是否可以使用 Microsoft Windows 同步管理器同步订阅。

(继承自 Subscription)
FullSubscription

获取一个值,该值指示订阅是否已满。

IsExistingObject

获取服务器上是否存在该对象。

(继承自 ReplicationObject)
LoopBackDetection

获取或设置分发代理是否将在订阅服务器上发起的事务发送回该订阅服务器。

MemoryOptimized

表示对事务发布或快照发布的推送订阅。

Name

获取分配给现有订阅的名称。

(继承自 Subscription)
PublicationName

获取或设置订阅订阅的发布的名称。

(继承自 Subscription)
PublisherName

获取或设置订阅属于非SQL Server发布服务器时发布服务器的名称。

SecureDtsPackagePassword

将密码 (设置为SecureString用于运行 Microsoft SQL Server 2000 Data Transformation Services (DTS) 包) 对象。

SqlServerName

获取此 对象连接到的 Microsoft SQL Server 实例的名称。

(继承自 ReplicationObject)
Status

获取订阅的状态。

(继承自 Subscription)
SubscriberCatalog

获取或设置与非SQL Server订阅服务器的 OLE DB 访问接口建立连接时使用的目录。

SubscriberDatasource

非SQL Server订阅服务器的 OLE DB 访问接口所理解的数据源的名称。

SubscriberDatasourceType

标识非SQL Server订阅服务器的数据源的类型。

SubscriberLocation

非SQL Server订阅服务器的 OLE DB 访问接口所理解的数据库位置。

SubscriberName

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

(继承自 Subscription)
SubscriberProvider

(注册非SQL Server订阅服务器的 OLE DB 提供程序的 PROGID) 的唯一编程标识符

SubscriberProviderString

OLE DB 提供程序特定的连接字符串用于连接到非SQL Server订阅服务器的数据源。

SubscriberSecurity

获取连接订阅服务器所使用的安全上下文。

(继承自 Subscription)
SubscriberType

获取或设置订阅服务器上的数据更改的更新行为。

SubscriptionDBName

获取或设置订阅服务器上接收所复制数据的数据库的名称。

(继承自 Subscription)
SubscriptionLSN

获取或设置订阅的日志序列编号。

SubscriptionType

获取该订阅注册是用于推送订阅还是请求订阅。

(继承自 Subscription)
SynchronizationAgent

获取可用于同步订阅的 TransSynchronizationAgent 类的实例。

SynchronizationAgentName

获取或设置创建用来同步订阅的代理作业的名称。

(继承自 Subscription)
SynchronizationAgentProcessSecurity

获取安全上下文,该上下文用于指定运行同步代理作业以同步订阅的 Microsoft Windows 帐户。

(继承自 Subscription)
SyncType

获取或设置初始化订阅的方式。

(继承自 Subscription)
UserData

获取或设置允许用户将他们自己的数据附加到该对象的对象属性。

(继承自 ReplicationObject)

方法

CheckValidCreation()

检查有效复制创建。

(继承自 ReplicationObject)
CheckValidDefinition(Boolean)

指示订阅定义是否有效。

(继承自 Subscription)
CommitPropertyChanges()

将所有缓存的属性更改语句发送到 Microsoft SQL Server 实例。

(继承自 ReplicationObject)
Create()

在发布服务器上创建订阅注册。

(继承自 Subscription)
Decouple()

将引用的复制对象与服务器相分离。

(继承自 ReplicationObject)
DoUpdateMemoryOptimizedProperty(String)

表示对事务发布或快照发布的推送订阅。

GetChangeCommand(StringBuilder, String, String)

从复制返回更改命令。

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

从复制返回创建命令。

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

从复制返回删除命令。

(继承自 ReplicationObject)
InternalRefresh(Boolean)

从复制启动内部刷新。

(继承自 ReplicationObject)
Load()

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

(继承自 ReplicationObject)
LoadProperties()

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

(继承自 ReplicationObject)
Refresh()

重新加载该对象的属性。

(继承自 ReplicationObject)
Reinitialize()

将订阅标记为在下一次运行分发代理时重新初始化以便同步订阅。

Reinitialize(Boolean)

重新初始化订阅。

Remove()

删除发布服务器上的订阅注册,并删除订阅服务器上用于推送订阅的复制对象。

(继承自 Subscription)
Script(ScriptOptions)

返回可用于创建或删除订阅的 Transact-SQL 脚本。

(继承自 Subscription)
StopSynchronizationJob()

尝试停止当前正在同步订阅的运行中的分发代理作业。

SynchronizeWithJob()

启动代理作业以便同步订阅。

适用于

另请参阅