TransPullSubscription クラス

トランザクション パブリケーションへのプル サブスクリプションを表します。

継承階層

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

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

構文

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

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

コンストラクター

  名前 説明
パブリック メソッド TransPullSubscription() TransPullSubscription クラスの新しいインスタンスを作成します。
パブリック メソッド TransPullSubscription(String, String, String, String, ServerConnection) プル サブスクリプションを定義するプロパティを使用して TransPullSubscription クラスの新しいインスタンスを作成します。
パブリック メソッド TransPullSubscription(String, String, String, String, ServerConnection, Boolean) プル サブスクリプション、およびサブスクリプションのエージェント ジョブを作成するかどうかを定義するプロパティを使用して、TransPullSubscription クラスの新しいインスタンスを作成します。

先頭に戻る

プロパティ

  名前 説明
パブリック プロパティ AgentJobId サブスクリプションの同期に使用されるエージェント ジョブの ID を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ AgentOffload エージェント ジョブの作成時と異なるコンピューター上で同期エージェントを実行するかどうかを取得します。値の設定も可能です。このプロパティは、Microsoft SQL Server 2005 以降を実行しているディストリビューターではサポートされなくなりました。 (PullSubscription から継承されています。)
パブリック プロパティ AgentOffloadServer リモート エージェントのアクティブ化を使用するとき、エージェントが実行されるリモート コンピューターの名前を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ AgentSchedule サブスクリプションの同期に使用されるエージェント ジョブのスケジュールを取得します。 (PullSubscription から継承されています。)
パブリック プロパティ AltSnapshotFolder ディストリビューター上の既定のスナップショットの場所を使用しない場合、パブリケーション スナップショット ファイルの場所を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ Attributes サブスクリプションによってサポートされるトランザクション パブリケーションの属性を取得します。値の設定も可能です。
パブリック プロパティ CachePropertyChanges レプリケーション プロパティに加えられた変更をキャッシュするか、またはすぐに適用するかを取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ ConnectionContext Microsoft SQL Server のインスタンスへの接続を取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ CreateSyncAgentByDefault レプリケーション エージェントを起動してサブスクリプションを同期するエージェント ジョブが、サブスクリプションの作成時に作成されるかどうかを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ DatabaseName サブスクリプション データベースの名前を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ Description プル サブスクリプションの説明テキストを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ DistributorName サブスクライブの対象となるパブリケーションをディストリビューターとして配信する Microsoft SQL Server のインスタンスを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ DistributorSecurity ディストリビューターへの接続に使用されるセキュリティ コンテキストを取得します。 (PullSubscription から継承されています。)
パブリック プロパティ DtsPackageLocation 変換可能なサブスクリプションで使用されるデータ変換サービス (DTS) パッケージの場所を取得します。値の設定も可能です。
パブリック プロパティ DtsPackageName 変換可能なサブスクリプションで使用されるデータ変換サービス (DTS) パッケージの名前を取得します。値の設定も可能です。
パブリック プロパティ DtsPackagePassword 変換可能なサブスクリプションで使用されるパスワードを設定します。
パブリック プロパティ EnabledForSynchronizationManager Windows 同期マネージャーを使用してサブスクリプションを同期できるかどうかを指定します。 (PullSubscription から継承されています。)
パブリック プロパティ FtpAddress インフラストラクチャです。FTP サーバーの IP アドレスを取得または設定します。 (PullSubscription から継承されています。)
パブリック プロパティ FtpLogin インフラストラクチャです。FTP のログインを取得または設定します。 (PullSubscription から継承されています。)
パブリック プロパティ FtpPassword インフラストラクチャです。FTP のパスワードを取得または設定します。 (PullSubscription から継承されています。)
パブリック プロパティ FtpPort インフラストラクチャです。FTP サーバーのポート番号を取得または設定します。 (PullSubscription から継承されています。)
パブリック プロパティ IsExistingObject サーバーにオブジェクトが存在するかどうかを取得します。 (ReplicationObject から継承されています。)
パブリック プロパティ LastAgentDateTime サブスクリプションの同期が最後にとられた日付と時刻を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ LastAgentStatus サブスクリプションの最新の同期状態を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ LastAgentSummary サブスクリプションの最新の同期の結果の概要を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ LastSummaryDateTime 前回の同期が完了した日付と時刻を取得します。
パブリック プロパティ Name プル サブスクリプション用に生成された名前を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ PublicationDBName パブリケーション データベースの名前を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ PublicationName サブスクリプションがサブスクライブするパブリケーションの名前を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ PublisherName パブリッシャーの名前を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ PublisherSecurity パブリッシャーに接続するときに同期エージェントで使用されるセキュリティ コンテキストを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ SecureFtpPassword インフラストラクチャです。FTP サーバーへの接続に使用するログインの、セキュリティで保護されたパスワードを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ SqlServerName このオブジェクトの接続先となる Microsoft SQL Server インスタンスの名前を取得します。 (ReplicationObject から継承されています。)
パブリック プロパティ SubscriberSecurity サブスクライバーに接続するときに同期エージェントで使用されるセキュリティ コンテキストを取得します。 (PullSubscription から継承されています。)
パブリック プロパティ SubscriberType サブスクリプションの更新動作を取得します。値の設定も可能です。
パブリック プロパティ SubscriptionId サブスクリプション ID 値を取得します。 (PullSubscription から継承されています。)
パブリック プロパティ SubscriptionType プッシュ サブスクリプション、プル サブスクリプション、または匿名サブスクリプションに対して、サブスクリプションを登録するかどうかを取得します。 (PullSubscription から継承されています。)
パブリック プロパティ SynchronizationAgent サブスクリプションの同期に使用できるディストリビューション エージェントのインスタンスを表すオブジェクトを取得します。
パブリック プロパティ SynchronizationAgentProcessSecurity Microsoft Windows アカウントを指定する場合に使用されるセキュリティ コンテキストを取得します。このアカウントに基づいて、同期エージェント ジョブが実行され、サブスクリプションが同期されます。 (PullSubscription から継承されています。)
パブリック プロパティ Type インフラストラクチャです。パブリケーションの種類を取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ UseFtp プル サブスクリプションの初期化に必要なスナップショット ファイルに、同期エージェントがファイル転送プロトコル (FTP) を使用してアクセスするかどうかを取得します。値の設定も可能です。 (PullSubscription から継承されています。)
パブリック プロパティ UserData ユーザーが独自のデータをオブジェクトにアタッチすることを許可するオブジェクト プロパティを取得します。値の設定も可能です。 (ReplicationObject から継承されています。)
パブリック プロパティ WorkingDirectory ダウンロードされたスナップショット ファイルの一時的な格納と解凍に使用する、サブスクライバー上のディレクトリへのパスを取得します。値の設定も可能です。 (PullSubscription から継承されています。)

先頭に戻る

メソッド

  名前 説明
パブリック メソッド CommitPropertyChanges キャッシュされているすべてのプロパティ変更ステートメントを、Microsoft SQL Server のインスタンスに送信します。 (ReplicationObject から継承されています。)
パブリック メソッド Create サブスクライバー上にプル サブスクリプションを作成します。 (PullSubscription から継承されています。)
パブリック メソッド Decouple 参照先のレプリケーション オブジェクトをサーバーから切断します。 (ReplicationObject から継承されています。)
パブリック メソッド 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 = "AdvWorksProductTran";
            string publisherName = publisherInstance;
            string subscriberName = subscriberInstance;
            string subscriptionDbName = "AdventureWorks2012Replica";
            string publicationDbName = "AdventureWorks2012";

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

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

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

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

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

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

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

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

                    // 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 pull subscription at the Subscriber.
                    subscription.Create();

                    Boolean registered = false;

                    // Verify that the subscription is not already registered.
                    foreach (TransSubscription existing
                        in publication.EnumSubscriptions())
                    {
                        if (existing.SubscriberName == subscriberName
                            && existing.SubscriptionDBName == subscriptionDbName)
                        {
                            registered = true;
                        }
                    }
                    if (!registered)
                    {
                        // Register the subscription with the Publisher.
                        publication.MakePullSubscriptionWellKnown(
                            subscriberName, subscriptionDbName,
                            SubscriptionSyncType.Automatic,
                            TransSubscriberType.ReadOnly);
                    }
                }
                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 = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

'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 TransPublication
Dim subscription As TransPullSubscription

Try
    ' Connect to the Publisher and Subscriber.
    subscriberConn.Connect()
    publisherConn.Connect()

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

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

        ' Define the pull subscription.
        subscription = New TransPullSubscription()
        subscription.ConnectionContext = subscriberConn
        subscription.PublisherName = publisherName
        subscription.PublicationName = publicationName
        subscription.PublicationDBName = publicationDbName
        subscription.DatabaseName = subscriptionDbName
        subscription.Description = "Pull subscription to " + publicationDbName _
        + " on " + subscriberName + "."

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

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

        ' 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 pull subscription at the Subscriber.
        subscription.Create()

        Dim registered As Boolean = False

        ' Verify that the subscription is not already registered.
        For Each existing As TransSubscription In publication.EnumSubscriptions()
            If existing.SubscriberName = subscriberName And _
                existing.SubscriptionDBName = subscriptionDbName Then
                registered = True
            End If
        Next existing
        If Not registered Then
            ' Register the subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown( _
             subscriberName, subscriptionDbName, _
             SubscriptionSyncType.Automatic, _
             TransSubscriberType.ReadOnly)
        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 プログラミング)