MergePullSubscription クラス

マージ パブリケーションに対するプル サブスクリプションを表します。

継承階層

System.Object
  Microsoft.SqlServer.Replication.ReplicationObject
    Microsoft.SqlServer.Replication.PullSubscription
      Microsoft.SqlServer.Replication.MergePullSubscription

名前空間:  Microsoft.SqlServer.Replication
アセンブリ:  Microsoft.SqlServer.Rmo (Microsoft.SqlServer.Rmo.dll)

構文

'宣言
Public NotInheritable Class MergePullSubscription _
    Inherits PullSubscription
'使用
Dim instance As MergePullSubscription
public sealed class MergePullSubscription : PullSubscription
public ref class MergePullSubscription sealed : public PullSubscription
[<SealedAttribute>]
type MergePullSubscription =  
    class 
        inherit PullSubscription 
    end
public final class MergePullSubscription extends PullSubscription

MergePullSubscription 型は、以下のメンバーを公開しています。

コンストラクター

  名前 説明
パブリック メソッド 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 から継承されています。)
パブリック プロパティ 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 から継承されています。)

先頭に戻る

メソッド

  名前 説明
パブリック メソッド CommitPropertyChanges キャッシュされているすべてのプロパティ変更ステートメントを、Microsoft SQL Server のインスタンスに送信します。 (ReplicationObject から継承されています。)
パブリック メソッド Create サブスクライバー上にプル サブスクリプションを作成します。 (PullSubscription から継承されています。)
パブリック メソッド Decouple 参照先のレプリケーション オブジェクトをサーバーから切断します。 (ReplicationObject から継承されています。)
パブリック メソッド EnumSynchronizationPartners 代替同期パートナーを返します。
パブリック メソッド Equals (Object から継承されています。)
パブリック メソッド GetHashCode (Object から継承されています。)
パブリック メソッド GetType (Object から継承されています。)
パブリック メソッド LastAgentJobHistoryInfo 最後に実行された同期エージェント ジョブに関する情報を返します。 (PullSubscription から継承されています。)
パブリック メソッド Load サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド LoadProperties サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド Refresh オブジェクトのプロパティを再度読み込みます。 (ReplicationObject から継承されています。)
パブリック メソッド Reinitialize マージ プル サブスクリプションに再初期化のマークを付けます。
パブリック メソッド Remove プル サブスクリプションを削除します。 (PullSubscription から継承されています。)
パブリック メソッド Script PullSubscription オブジェクトの現在のプロパティ設定に基づいてプル サブスクリプションを作成または削除する Transact-SQL スクリプトを返します。 (PullSubscription から継承されています。)
パブリック メソッド StopSynchronizationJob 現在サブスクリプションの同期を実行しているマージ エージェント ジョブの停止を試みます。 (PullSubscription.StopSynchronizationJob() をオーバーライドします。)
パブリック メソッド SynchronizeWithJob エージェント ジョブを非同期に開始して、プル サブスクリプションを同期します。 (PullSubscription.SynchronizeWithJob() をオーバーライドします。)
パブリック メソッド ToString (Object から継承されています。)

先頭に戻る

説明

プル サブスクリプションでは、マージ エージェントはサブスクライバーで実行されます。

スレッド セーフ

この型の public static (Microsoft Visual Basic では Shared) のすべてのメンバーは、マルチスレッド操作で安全に使用できます。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

使用例

          // 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

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

Microsoft.SqlServer.Replication 名前空間

その他の技術情報

プル サブスクリプションを作成する方法 (RMO プログラミング)

Sales Orders Sample for Merge Replication