TransPublication.ValidatePublication メソッド

すべてのサブスクリプションのインライン パブリケーション検証を呼び出します。

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

構文

'宣言
Public Sub ValidatePublication ( _
    validationOption As ValidationOption, _
    validationMethod As ValidationMethod, _
    shutdownAgent As Boolean _
)
'使用
Dim instance As TransPublication 
Dim validationOption As ValidationOption 
Dim validationMethod As ValidationMethod 
Dim shutdownAgent As Boolean

instance.ValidatePublication(validationOption, _
    validationMethod, shutdownAgent)
public void ValidatePublication(
    ValidationOption validationOption,
    ValidationMethod validationMethod,
    bool shutdownAgent
)
public:
void ValidatePublication(
    ValidationOption validationOption, 
    ValidationMethod validationMethod, 
    bool shutdownAgent
)
member ValidatePublication : 
        validationOption:ValidationOption * 
        validationMethod:ValidationMethod * 
        shutdownAgent:bool -> unit
public function ValidatePublication(
    validationOption : ValidationOption, 
    validationMethod : ValidationMethod, 
    shutdownAgent : boolean
)

パラメーター

  • shutdownAgent
    型: System.Boolean
    Boolean 値です。 true の場合、検証後すぐにディストリビューション エージェントがシャットダウンします。 false の場合、ディストリビューション エージェントはそのまま実行されます。

説明

検証の結果はエージェントの履歴に書き込まれ、レプリケーション モニターを使用して表示されます。 詳細については、「レプリケーションの監視」を参照してください。

ValidatePublication メソッドを呼び出すことができるのは、パブリッシャー側の固定サーバー ロール sysadmin のメンバー、またはパブリケーション データベースの固定データベース ロール db_owner のメンバーだけです。

ValidatePublication を呼び出すと、sp_publication_validation を実行したのと同じことになります。

使用例

          // Define the server, database, and publication names
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksProductTran";
            string publicationDbName = "AdventureWorks2012";

            TransPublication publication;

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

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

                // Set the required properties for the publication.
                publication = new TransPublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // If we can't get the properties for this publication, 
                // throw an application exception.
                if (publication.LoadProperties())
                {
                    // Initiate validataion for all subscriptions to this publication.
                    publication.ValidatePublication(ValidationOption.RowCountOnly,
                        ValidationMethod.ConditionalFast, false);

                    // If not already running, start the Distribution Agent at each 
                    // Subscriber to synchronize and validate the subscriptions.
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Settings could not be retrieved for the publication. " +
                        "Ensure that the publication {0} exists on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(
                    "Subscription validation could not be initiated.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication

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

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

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

関連項目

参照

TransPublication クラス

Microsoft.SqlServer.Replication 名前空間