TransSynchronizationAgent Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обеспечивает функциональность Replication агент распространения.
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 , для синхронизации push-подписки.
// 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 Data Transformation Services (DTS), который используется для преобразования командных рядов перед их применением абоненту. |
| DtsPackagePassword |
Получает или устанавливает пароль владельца, который использовался для доступа к пакету Microsoft SQL Server 2000 Data Transformation Services (DTS), указанному в этом DtsPackageFileName свойстве. |
| FileTransferType |
Получает или задаёт, как исходные файлы снимков передаются абоненту. |
| HostName |
Получает или устанавливает используемое имя хоста. |
| LastUpdatedTime |
Получает временную метку последнего раза, когда этот агент синхронизировал подписку. |
| LoginTimeout |
Получает или устанавливает максимальное количество секунд для ожидания установления соединений. |
| MaxDeliveredTransactions |
Получает или устанавливает максимальное количество транзакций, приложенных абоненту за выполнение одного агента. |
| Output |
Получает или устанавливает имя файла и путь выходного файла агента. |
| OutputVerboseLevel |
Получает или задаёт объём информации, которую ведёт агент распространения в выходном файле агента. |
| ProfileName |
Получает или устанавливает имя профиля, используемого агентом. |
| Publication |
Получает или устанавливает название издания. |
| Publisher |
Получает или устанавливает имя экземпляра Microsoft SQL Server, который является Publisher для подписки. |
| PublisherDatabase |
Получает или устанавливает название базы данных публикаций. |
| QueryTimeout |
Получает или устанавливает количество секунд, позволяемых для выполнения внутренних запросов. |
| SecureDistributorEncryptedPassword |
Получает или устанавливает зашифрованный пароль для дистрибьютора. |
| SecureSubscriberEncryptedPassword |
Получает или устанавливает защищённый пароль для абонента. |
| SkipErrors |
Получает или устанавливает список ошибок, разделённых с двоеточием, которые этот агент должен пропустить. |
| Subscriber |
Получает или устанавливает имя экземпляра Microsoft SQL Server, который является подписчиком. |
| SubscriberDatabase |
Получает или устанавливает имя базы данных подписок. |
| SubscriberDatabasePath |
Получите или установите путь к базе данных для абонента. |
| SubscriberDataSourceType |
Получает или устанавливает тип источника данных, используемого в качестве абонента. |
| SubscriberEncryptedPassword |
Получает или устанавливает зашифрованный пароль для абонента. |
| SubscriberLogin |
Получает или устанавливает имя входа, используемое при подключении к абоненту с помощью аутентификации SQL Server. |
| SubscriberPassword |
Получает или устанавливает пароль, используемый при подключении к абоненту, с помощью аутентификации SQL Server. |
| SubscriberSecurityMode |
Получает или устанавливает режим безопасности, который используется при подключении к издателю. |
| SubscriptionType |
Определяет, является ли подписка push или pull. |
| UndeliveredCommands |
Получает количество недоставленных команд. |
| UndeliveredTransactions |
Получает количество недоставленных транзакций. |
| UseInProcLoader |
Получает или устанавливает значение, указывающее, стоит ли использовать команду BULK INSERT при приложении снимков к абоненту. |
| WorkingDirectory |
Получает или устанавливает рабочую директорию, из которой получаются файлы снимков при использовании протокола передачи файлов (FTP). |
Методы
| Имя | Описание |
|---|---|
| Abort() |
Отменяет TransSynchronizationAgent операцию. |
| Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса TransSynchronizationAgent. |
| Dispose(Boolean) |
Освобождает все ресурсы, используемые классом TransSynchronizationAgent . |
| Finalize() |
Завершает .TransSynchronizationAgent |
| IsSnapshotRequired() |
Подключается к Дистрибьютору и Подписчику, чтобы определить, будет ли новый снимок применён при следующей синхронизации агента. |
| Synchronize() |
Запускает агент распространения для синхронизации подписки. |
События
| Имя | Описание |
|---|---|
| ComStatus |
Возникает, когда агент распространения возвращает информацию о статусе синхронизации Com. |
| Status |
Возникает, когда агент распространения возвращает информацию о статусе синхронизации. |
Применяется к
Потокобезопасность
Класс TransSynchronizationAgent не поддерживает многопоточные квартиры. Вы можете указать однопоточную квартиру, объявив [STAThread] атрибут на методе, который является основной точкой входа для приложения. Это стандарт для приложений на базе Microsoft Windows, которые создаются с помощью Microsoft Visual Studio.