TransPullSubscription クラス

定義

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

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

// 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 (Microsoft Visual Basic では Shared) のすべてのメンバーは、マルチスレッド操作で安全に使用できます。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

コンストラクター

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)
IsMemoryOptimized

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

(継承元 PullSubscription)
LastAgentDateTime

サブスクリプションの同期が最後にとられた日付と時刻を取得します。

(継承元 PullSubscription)
LastAgentStatus

サブスクリプションの最新の同期状態を取得します。

(継承元 PullSubscription)
LastAgentSummary

サブスクリプションの最新の同期の結果の概要を取得します。

(継承元 PullSubscription)
LastSummaryDateTime

前回の同期が完了した日付と時刻を取得します。

MemoryOptimized

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

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)

メソッド

CheckValidCreation()

有効なレプリケーションの作成を確認します。

(継承元 ReplicationObject)
CheckValidDefinition(Boolean)

定義が有効かどうかを示します。

(継承元 PullSubscription)
CommitPropertyChanges()

キャッシュされたすべてのプロパティ変更ステートメントを Microsoft SQL Serverのインスタンスに送信します。

(継承元 ReplicationObject)
Create()

サブスクライバー上にプル サブスクリプションを作成します。

(継承元 PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

同期マネージャーのカスタム パブリケーションを有効にします。

(継承元 PullSubscription)
Decouple()

参照先のレプリケーション オブジェクトをサーバーから切断します。

(継承元 ReplicationObject)
DoUpdateMemoryOptimizedProperty(String)

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

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()

プル サブスクリプションに再初期化のマークを付けます。

Remove()

プル サブスクリプションを削除します。

(継承元 PullSubscription)
Script(ScriptOptions)

オブジェクトの現在のプロパティ設定に基づいてプル サブスクリプションを作成または削除する Transact-SQL スクリプトを PullSubscription 返します。

(継承元 PullSubscription)
StopSynchronizationJob()

現在サブスクリプションの同期を実行しているディストリビューション エージェント ジョブの停止を試みます。

SynchronizeWithJob()

エージェント ジョブを開始してサブスクリプションを同期します。

適用対象

こちらもご覧ください