MergePullSubscription 类

定义

表示对合并发布的请求订阅。

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

示例

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";

//Create connections to the Publisher and Subscriber.
ServerConnection subscriberConn = new ServerConnection(subscriberName);
ServerConnection publisherConn = new ServerConnection(publisherName);

// Create the objects that we need.
MergePublication publication;
MergePullSubscription subscription;

try
{
    // Connect to the Subscriber.
    subscriberConn.Connect();

    // Ensure that the publication exists and that 
    // it supports pull subscriptions.
    publication = new MergePublication();
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;
    publication.ConnectionContext = publisherConn;

    if (publication.LoadProperties())
    {
        if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPull;
        }

        // Define the pull subscription.
        subscription = new MergePullSubscription();
        subscription.ConnectionContext = subscriberConn;
        subscription.PublisherName = publisherName;
        subscription.PublicationName = publicationName;
        subscription.PublicationDBName = publicationDbName;
        subscription.DatabaseName = subscriptionDbName;
        subscription.HostName = hostname;

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

        // Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = true;

        // Create the pull subscription at the Subscriber.
        subscription.Create();

        Boolean registered = false;

        // Verify that the subscription is not already registered.
        foreach (MergeSubscription existing
            in publication.EnumSubscriptions())
        {
            if (existing.SubscriberName == subscriberName
                && existing.SubscriptionDBName == subscriptionDbName
                && existing.SubscriptionType == SubscriptionOption.Pull)
            {
                registered = true;
            }
        }
        if (!registered)
        {
            // Register the local subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown(
                subscriberName, subscriptionDbName,
                SubscriptionSyncType.Automatic,
                MergeSubscriberType.Local, 0);
        }
    }
    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
{
    subscriberConn.Disconnect();
    publisherConn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"

'Create connections to the Publisher and Subscriber.
Dim subscriberConn As ServerConnection = New ServerConnection(subscriberName)
Dim publisherConn As ServerConnection = New ServerConnection(publisherName)

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergePullSubscription

Try
    ' Connect to the Subscriber.
    subscriberConn.Connect()

    ' Ensure that the publication exists and that 
    ' it supports pull subscriptions.
    publication = New MergePublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = publisherConn

    If publication.LoadProperties() Then
        If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPull
        End If

        ' Define the pull subscription.
        subscription = New MergePullSubscription()
        subscription.ConnectionContext = subscriberConn
        subscription.PublisherName = publisherName
        subscription.PublicationName = publicationName
        subscription.PublicationDBName = publicationDbName
        subscription.DatabaseName = subscriptionDbName
        subscription.HostName = hostname

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

        ' Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = True

        ' Create the pull subscription at the Subscriber.
        subscription.Create()

        Dim registered As Boolean = False

        ' Verify that the subscription is not already registered.
        For Each existing As MergeSubscription In _
        publication.EnumSubscriptions()
            If existing.SubscriberName = subscriberName Then
                registered = True
            End If
        Next
        If Not registered Then
            ' Register the local subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown( _
             subscriberName, subscriptionDbName, _
             SubscriptionSyncType.Automatic, _
             MergeSubscriberType.Local, 0)
        End If
    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
    subscriberConn.Disconnect()
    publisherConn.Disconnect()
End Try

注解

对于请求订阅,合并代理在订阅服务器上运行。

线程安全性

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

构造函数

MergePullSubscription()

创建 MergePullSubscription 类的新实例。

MergePullSubscription(String, String, String, String, ServerConnection)

使用指定的数据库、发布服务器、发布服务器和订阅服务器连接初始化 类的新实例 MergePullSubscription

MergePullSubscription(String, String, String, String, ServerConnection, Boolean)

使用指定的数据库、发布服务器、发布、订阅服务器连接以及是否创建代理作业来创建 MergePullSubscription 类的新实例。

属性

AgentJobId

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

(继承自 PullSubscription)
AgentOffload

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

(继承自 PullSubscription)
AgentOffloadServer

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

(继承自 PullSubscription)
AgentSchedule

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

(继承自 PullSubscription)
AltSnapshotFolder

获取或设置在分发服务器上未使用默认快照位置时获取发布快照文件的位置。

(继承自 PullSubscription)
CachePropertyChanges

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

(继承自 ReplicationObject)
ConnectionContext

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

(继承自 ReplicationObject)
CreateSyncAgentByDefault

获取或设置在创建订阅时是否创建用于启动复制代理以便同步订阅的代理作业。

(继承自 PullSubscription)
DatabaseName

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

(继承自 PullSubscription)
Description

获取或设置请求订阅的文本说明。

(继承自 PullSubscription)
DistributorName

获取或设置 Microsoft SQL Server 的实例,该实例是分发服务器,并且分发订阅订阅的发布。

(继承自 PullSubscription)
DistributorSecurity

获取连接到分发服务器所使用的安全上下文。

(继承自 PullSubscription)
DynamicSnapshotLocation

获取或设置在发布使用参数化行筛选器时特定于订阅的快照文件的文件位置。

EnabledForSynchronizationManager

指定能否使用 Windows 同步管理器同步订阅。

(继承自 PullSubscription)
FtpAddress

获取或设置 FTP 服务器的 IP 地址。

(继承自 PullSubscription)
FtpLogin

获取或设置 FTP 登录名。

(继承自 PullSubscription)
FtpPassword

获取或设置 FTP 密码。

(继承自 PullSubscription)
FtpPort

获取或设置 FTP 服务器的端口号。

(继承自 PullSubscription)
HostName

获取或设置在定义订阅服务器的数据分区的参数化行筛选器中使用此函数时提供给 HOST_NAME 函数的值。

InternetLogin

获取或设置在 Web 同步过程中连接到 Web 服务器时用于 HTTP 基本身份验证的登录名。

InternetPassword

获取或设置在 Web 同步过程中连接到 Web 服务器时用于提供的 InternetLogin 值的密码。

InternetSecurityMode

获取或设置在 Web 同步期间连接到 Web 服务器时使用的 HTTP 身份验证方法。

InternetTimeout

获取或设置在 Web 同步过程中连接到 Web 服务器时的 HTTP 超时值(以秒为单位)。

InternetUrl

获取或设置在使用 Web 同步来同步订阅时要使用的 URL。

IsExistingObject

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

(继承自 ReplicationObject)
IsMemoryOptimized

表示对合并发布的请求订阅。

(继承自 PullSubscription)
LastAgentDateTime

获取上次同步订阅的日期和时间。

(继承自 PullSubscription)
LastAgentStatus

获取订阅的最新同步的状态。

(继承自 PullSubscription)
LastAgentSummary

获取订阅的最新同步的结果的摘要。

(继承自 PullSubscription)
Name

获取为请求订阅生成的名称。

(继承自 PullSubscription)
Priority

获取或设置在解决订阅之间的冲突时此服务器订阅相对于其他服务器订阅的权重。

PublicationDBName

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

(继承自 PullSubscription)
PublicationName

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

(继承自 PullSubscription)
PublisherName

获取或设置发布服务器的名称。

(继承自 PullSubscription)
PublisherSecurity

获取或设置在连接到发布服务器时同步代理使用的安全上下文。

(继承自 PullSubscription)
SecureFtpPassword

获取或设置用于连接到 FTP 服务器的登录名的安全密码。

(继承自 PullSubscription)
SecureInternetPassword

设置在使用 HTTP 基本身份验证连接到 Web 服务器时使用的密码(作为 SecureString 对象)。

SqlServerName

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

(继承自 ReplicationObject)
SubscriberSecurity

获取在连接到订阅服务器时同步代理使用的安全上下文。

(继承自 PullSubscription)
SubscriberType

获取或设置订阅是服务器订阅还是客户端订阅。

SubscriptionId

获取订阅 ID 值。

(继承自 PullSubscription)
SubscriptionType

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

(继承自 PullSubscription)
SynchronizationAgent

获取一个对象,该对象表示可用于同步订阅的合并代理的实例。

SynchronizationAgentProcessSecurity

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

(继承自 PullSubscription)
SyncType

获取或设置在订阅服务器上初始化数据的方式。

Type

获取或设置发布类型。

(继承自 PullSubscription)
UseFtp

获取或设置同步代理是否使用文件传输协议 (FTP) 访问初始化请求订阅所需的快照文件。

(继承自 PullSubscription)
UseInteractiveResolver

获取或设置是否在同步过程中使用交互式冲突解决程序。

UserData

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

(继承自 ReplicationObject)
UseWebSynchronization

获取或设置是否使用 Web 同步来同步订阅。

WorkingDirectory

获取或设置订阅服务器上用于临时存储和解压缩下载的快照文件的目录的路径。

(继承自 PullSubscription)

方法

CheckValidCreation()

检查有效复制创建。

(继承自 ReplicationObject)
CheckValidDefinition(Boolean)

指示定义是否有效。

(继承自 PullSubscription)
CommitPropertyChanges()

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

(继承自 ReplicationObject)
Create()

在订阅服务器上创建请求订阅。

(继承自 PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

启用同步管理器的自定义发布。

(继承自 PullSubscription)
Decouple()

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

(继承自 ReplicationObject)
EnumSynchronizationPartners()

返回备用同步伙伴。

GetChangeCommand(StringBuilder, String, String)

从复制返回更改命令。

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

从复制返回创建命令。

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

从复制返回删除命令。

(继承自 ReplicationObject)
InitMemberVariables(String, String, String, String, Boolean)

初始化成员变量。

(继承自 PullSubscription)
InternalRefresh(Boolean)

从复制启动内部刷新。

(继承自 ReplicationObject)
LastAgentJobHistoryInfo()

返回与上次运行的同步代理作业有关的信息。

(继承自 PullSubscription)
Load()

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

(继承自 ReplicationObject)
LoadProperties()

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

(继承自 ReplicationObject)
Refresh()

重新加载该对象的属性。

(继承自 ReplicationObject)
Reinitialize(Boolean)

将合并请求订阅标记为要重新初始化。

Remove()

删除请求订阅。

(继承自 PullSubscription)
Script(ScriptOptions)

返回一个 Transact-SQL 脚本,用于基于 对象的当前属性设置 PullSubscription 创建或删除请求订阅。

(继承自 PullSubscription)
StopSynchronizationJob()

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

SynchronizeWithJob()

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

适用于

另请参阅