Поделиться через


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 метод вызывается в экземпляре TransSynchronizationAgent класса, доступ к которому осуществляется из SynchronizationAgent свойства для синхронизации принудительной подписки.

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

Возвращает или задает пароль владельца, используемый для доступа к пакету Служб преобразования данных (DTS) Microsoft SQL Server 2000, указанному свойствомDtsPackageFileName.

FileTransferType

Возвращает или задает способ передачи исходных файлов моментальных снимков подписчику.

HostName

Возвращает или задает используемое имя сервера.

LastUpdatedTime

Возвращает отметку времени последней синхронизации подписки агентом репликации.

LoginTimeout

Возвращает или задает максимальное количество секунд, в течение которых ожидается установка соединения.

MaxDeliveredTransactions

Возвращает или задает максимальное количество транзакций, применяемое к подписчику при выполнении одного агента.

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

Возникает, когда агент распространителя возвращает сведения о состоянии @@@команды@@@ синхронизации.

Status

Происходит, когда агент распространителя возвращает информацию о состоянии синхронизации.

Применяется к

Потокобезопасность

Класс TransSynchronizationAgent не поддерживает многопоточные квартиры. Можно указать однопотоковую квартиру, объявив [STAThread] атрибут в методе, который является основной точкой входа для приложения. Это значение по умолчанию для приложений на основе Microsoft Windows, созданных с помощью Microsoft Visual Studio.