TransSynchronizationAgent クラス

定義

レプリケーション ディストリビューション エージェントの機能を提供します。

public ref class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::ITransSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")]
public class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.ITransSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")>]
type TransSynchronizationAgent = class
    inherit MarshalByRefObject
    interface IDisposable
    interface ITransSynchronizationAgent
Public Class TransSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, ITransSynchronizationAgent
継承
TransSynchronizationAgent
属性
実装

次の例では、プッシュ サブスクリプションをSynchronize同期するために、プロパティからSynchronizationAgentアクセスされるクラスのTransSynchronizationAgentインスタンスでメソッドが呼び出されます。

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

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

TransSubscription subscription;

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

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

    // If the push subscription exists, start the synchronization.
    if (subscription.LoadProperties())
    {
        // Check that we have enough metadata to start the agent.
        if (subscription.SubscriberSecurity != null)
        {
            // Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize();
        }
        else
        {
            throw new ApplicationException("There is insufficent metadata to " +
                "synchronize the subscription. Recreate the subscription with " +
                "the agent job or supply the required agent properties at run time.");
        }
    }
    else
    {
        // Do something here if the push subscription does not exist.
        throw new ApplicationException(String.Format(
            "The subscription to '{0}' does not exist on {1}",
            publicationName, subscriberName));
    }
}
catch (Exception ex)
{
    // Implement appropriate error handling here.
    throw new ApplicationException("The subscription could not be synchronized.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

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

Dim subscription As TransSubscription

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

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

    ' If the push subscription exists, start the synchronization.
    If subscription.LoadProperties() Then
        ' Check that we have enough metadata to start the agent.
        If Not subscription.SubscriberSecurity Is Nothing Then

            ' Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize()
        Else
            Throw New ApplicationException("There is insufficent metadata to " + _
             "synchronize the subscription. Recreate the subscription with " + _
             "the agent job or supply the required agent properties at run time.")
        End If
    Else
        ' Do something here if the push subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "The subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
    conn.Disconnect()
End Try

注釈

TransSynchronizationAgent クラスでは、プログラムでサブスクリプションをトランザクション パブリケーションやスナップショット パブリケーションに同期させるための機能がサポートされています。

コンストラクター

TransSynchronizationAgent()

TransSynchronizationAgent クラスのインスタンスを作成します。

プロパティ

AltSnapshotFolder

サブスクリプションの代替スナップショット フォルダーを取得します。値の設定も可能です。

ComErrorCollection

レプリケーション エージェントによって生成されるエラーのコレクションを取得します。

Distributor

サブスクリプションのディストリビューターとして機能する Microsoft SQL Serverのインスタンスの名前を取得または設定します。

DistributorAddress

DistributorNetwork プロパティが指定されている場合にディストリビューターへの接続に使用されるネットワーク アドレスを取得します。値の設定も可能です。

DistributorEncryptedPassword

SQL Server認証を使用してディストリビューターに接続するときに使用される暗号化されたパスワードを取得または設定します。

DistributorLogin

SQL Server認証を使用してディストリビューターに接続するときに使用するログイン名を取得または設定します。

DistributorNetwork

ディストリビューターへの接続時に使用されるクライアント Net-Libraryを取得または設定します。

DistributorPassword

SQL Server認証を使用してディストリビューターに接続するときに使用するパスワードを取得または設定します。

DistributorSecurityMode

ディストリビューターに接続するときに使用されるセキュリティ モードを取得します。値の設定も可能です。

DtsPackageFileName

コマンド行セットをサブスクライバーに適用する前に変換するための Microsoft SQL Server 2000 データ変換サービス (DTS) パッケージの名前とパスを取得します。値の設定も可能です。

DtsPackagePassword

プロパティで指定された Microsoft SQL Server 2000 Data Transformation Services (DTS) パッケージへのアクセスに使用する所有者パスワードをDtsPackageFileName取得または設定します。

FileTransferType

初期スナップショット ファイルをサブスクライバーに転送する方法を取得します。値の設定も可能です。

HostName

使用されるホスト名を取得します。値の設定も可能です。

LastUpdatedTime

レプリケーション エージェントが最後にサブスクリプションの同期をとったときのタイムスタンプを取得します。

LoginTimeout

接続が確立されるまで待機する最大秒数を取得します。値の設定も可能です。

MaxDeliveredTransactions

1 回のエージェント実行でサブスクライバーに適用されるトランザクションの最大数を取得します。値の設定も可能です。

Output

エージェントの出力ファイルの名前とパスを取得します。値の設定も可能です。

OutputVerboseLevel

ディストリビューション エージェントによってエージェントの出力ファイルに記録される情報の量を取得します。値の設定も可能です。

ProfileName

エージェントが使用するプロファイルの名前を取得します。値の設定も可能です。

Publication

パブリケーションの名前を取得します。値の設定も可能です。

Publisher

サブスクリプションのパブリッシャーとして動作している Microsoft SQL Server のインスタンスの名前を取得します。値の設定も可能です。

PublisherDatabase

パブリケーション データベースの名前を取得します。値の設定も可能です。

QueryTimeout

内部クエリを完了できる秒数を取得または設定します。

SecureDistributorEncryptedPassword

ディストリビューターの、セキュリティで保護された暗号化パスワードを取得します。値の設定も可能です。

SecureSubscriberEncryptedPassword

サブスクライバーのセキュリティで保護された暗号化されたパスワードを取得または設定します。

SkipErrors

このエージェントによってスキップされるエラー番号のコロン区切りの一覧を取得します。値の設定も可能です。

Subscriber

サブスクライバーである Microsoft SQL Serverのインスタンスの名前を取得または設定します。

SubscriberDatabase

サブスクリプション データベースの名前を取得します。値の設定も可能です。

SubscriberDatabasePath

サブスクライバーのデータベース パスを取得します。値の設定も可能です。

SubscriberDataSourceType

サブスクライバーとして使用されるデータ ソースの種類を取得または設定します。

SubscriberEncryptedPassword

サブスクライバーの暗号化されたパスワードを取得または設定します。

SubscriberLogin

SQL Server認証を使用してサブスクライバーに接続するときに使用するログイン名を取得または設定します。

SubscriberPassword

SQL Server認証を使用してサブスクライバーに接続するときに使用するパスワードを取得または設定します。

SubscriberSecurityMode

パブリッシャーへの接続時に使用されるセキュリティ モードを取得または設定します。

SubscriptionType

サブスクリプションがプッシュ サブスクリプションかプル サブスクリプションかを取得します。値の設定も可能です。

UndeliveredCommands

配信されなかったコマンドの数を取得します。

UndeliveredTransactions

配信されなかったトランザクションの数を取得します。

UseInProcLoader

サブスクライバーでスナップショット ファイルを適用するときに BULK INSERT コマンドを使用するかどうかを示す値を取得します。値の設定も可能です。

WorkingDirectory

ファイル転送プロトコル (FTP) を使用する場合にスナップショット ファイルにアクセスできる作業ディレクトリを取得します。値の設定も可能です。

メソッド

Abort()

TransSynchronizationAgent の操作を停止します。

Dispose()

TransSynchronizationAgent クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

Dispose(Boolean)

TransSynchronizationAgent クラスによって使用されているすべてのリソースを解放します。

Finalize()

を終了します TransSynchronizationAgent

IsSnapshotRequired()

ディストリビューターとサブスクライバーに接続して、エージェントの次回の同期の際に新しいスナップショットが適用されるかどうかを示します。

Synchronize()

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

イベント

ComStatus

ディストリビューション エージェントが同期の Com 状態情報を返すと発生します。

Status

ディストリビューション エージェントが同期の状態情報を返すと発生します。

適用対象

スレッド セーフ

TransSynchronizationAgent クラスは、マルチスレッド アパートメントをサポートしていません。 シングルスレッド アパートメントを指定するには、アプリケーションの [STAThread] メイン エントリ ポイントであるメソッドで属性を宣言します。 これは、Microsoft Visual Studio を使用して作成される Microsoft Windows ベースのアプリケーションの既定値です。