MergeSubscription Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет подписку на публикацию слиянием, зарегистрированную в издателе.
public ref class MergeSubscription sealed : Microsoft::SqlServer::Replication::Subscription
public sealed class MergeSubscription : Microsoft.SqlServer.Replication.Subscription
type MergeSubscription = class
inherit Subscription
Public NotInheritable Class MergeSubscription
Inherits Subscription
- Наследование
Примеры
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";
//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;
try
{
// Connect to the Publisher.
conn.Connect();
// Ensure that the publication exists and that
// it supports push subscriptions.
publication = new MergePublication();
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
publication.ConnectionContext = conn;
if (publication.IsExistingObject)
{
if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPush;
}
// Define the push subscription.
subscription = new MergeSubscription();
subscription.ConnectionContext = conn;
subscription.SubscriberName = subscriberName;
subscription.PublicationName = publicationName;
subscription.DatabaseName = publicationDbName;
subscription.SubscriptionDBName = subscriptionDbName;
subscription.HostName = hostname;
// Set a schedule to synchronize the subscription every 2 hours
// during weekdays from 6am to 10pm.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
subscription.AgentSchedule.FrequencySubDayInterval = 2;
subscription.AgentSchedule.ActiveStartDate = 20051108;
subscription.AgentSchedule.ActiveEndDate = 20071231;
subscription.AgentSchedule.ActiveStartTime = 060000;
subscription.AgentSchedule.ActiveEndTime = 100000;
// Specify the Windows login credentials for the Merge Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
subscription.SynchronizationAgentProcessSecurity.Password = winPassword;
// Create the push subscription.
subscription.Create();
}
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
{
conn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"
'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription
Try
' Connect to the Publisher.
conn.Connect()
' Ensure that the publication exists and that
' it supports push subscriptions.
publication = New MergePublication()
publication.Name = publicationName
publication.DatabaseName = publicationDbName
publication.ConnectionContext = conn
If publication.IsExistingObject Then
If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPush
End If
' Define the push subscription.
subscription = New MergeSubscription()
subscription.ConnectionContext = conn
subscription.SubscriberName = subscriberName
subscription.PublicationName = publicationName
subscription.DatabaseName = publicationDbName
subscription.SubscriptionDBName = subscriptionDbName
subscription.HostName = hostname
' Set a schedule to synchronize the subscription every 2 hours
' during weekdays from 6am to 10pm.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
subscription.AgentSchedule.FrequencySubDayInterval = 2
subscription.AgentSchedule.ActiveStartDate = 20051108
subscription.AgentSchedule.ActiveEndDate = 20071231
subscription.AgentSchedule.ActiveStartTime = 60000
subscription.AgentSchedule.ActiveEndTime = 100000
' Specify the Windows login credentials for the Merge Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin
subscription.SynchronizationAgentProcessSecurity.Password = winPassword
' Create the push subscription.
subscription.Create()
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
conn.Disconnect()
End Try
Комментарии
Класс MergeSubscription используется как с подписками по запросу, так и с принудительными подписками на публикацию слиянием.
При настройке издателя с удаленным распространителем значения, предоставленные для всех параметров, включая SynchronizationAgentProcessSecurity, отправляются распространителю в виде обычного текста. Перед вызовом метода Create следует зашифровать подключение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе sp_reinitmergesubscription (Transact-SQL).
Потокобезопасность
Все общедоступные статические элементы (Shared
в Microsoft Visual Basic) этого типа безопасны для многопоточных операций. Потокобезопасная работа с членами экземпляров типа не гарантируется.
Конструкторы
MergeSubscription() |
Создает новый экземпляр класса MergeSubscription. |
MergeSubscription(String, String, String, String, ServerConnection) |
Создает новый экземпляр класса MergeSubscription с указанными соединением с издателем и свойствами, которые однозначно определяют подписку. |
Свойства
AgentJobId |
Возвращает идентификатор задания агента, который используется для синхронизации подписки. (Унаследовано от Subscription) |
AgentOffload |
Возвращает или задает значение, указывающее, выполняется ли агент синхронизации на компьютере, отличном от компьютера, на котором было создано задание агента. Это свойство больше не поддерживается для распространителей, работающих под управлением Microsoft SQL Server 2005 и более поздних версий. (Унаследовано от Subscription) |
AgentOffloadServer |
Возвращает или задает имя удаленного компьютера, на котором запущен агент, для удаленной активации агента. (Унаследовано от Subscription) |
AgentSchedule |
Возвращает расписание для задания агента, которое используется для синхронизации подписки. (Унаследовано от Subscription) |
CachePropertyChanges |
Возвращает или задает значение, указывающее, следует ли кэшировать изменения, внесенные в свойства репликации, или применять их немедленно. (Унаследовано от ReplicationObject) |
ConnectionContext |
Возвращает или задает подключение к экземпляру Microsoft SQL Server. (Унаследовано от ReplicationObject) |
CreateSyncAgentByDefault |
Возвращает или задает значение, которое показывает, создано ли по умолчанию задание агента, которое используется для синхронизации подписки. (Унаследовано от Subscription) |
DatabaseName |
Возвращает или задает имя базы данных публикации. (Унаследовано от Subscription) |
Description |
Возвращает или задает текстовое описание подписки на публикацию слиянием. |
EnabledForSynchronizationManager |
Указывает, можно ли синхронизировать подписку с помощью диспетчера синхронизации Microsoft Windows. (Унаследовано от Subscription) |
HostName |
Возвращает или задает значение, предоставленное функции HOST_NAME при использовании этой функции в параметризованном фильтре строк, который определяет секцию данных подписчика. |
IsExistingObject |
Возвращает значение, указывающее, существует ли объект на сервере. (Унаследовано от ReplicationObject) |
Name |
Возвращает имя, назначенное существующей подписке. (Унаследовано от Subscription) |
Priority |
Возвращает или задает относительное значение приоритета, назначенное серверной подписке. |
PublicationName |
Возвращает или задает имя публикации, на которую создана подписка. (Унаследовано от Subscription) |
PublisherSecurity |
Возвращает контекст безопасности, используемый агентом слияния для подключения к издателю. |
SqlServerName |
Возвращает имя экземпляра microsoft SQL Server, к которому подключен этот объект. (Унаследовано от ReplicationObject) |
Status |
Возвращает состояние подписки. (Унаследовано от Subscription) |
SubscriberName |
Возвращает или задает имя экземпляра Microsoft SQL Server, действующего как подписчик. (Унаследовано от Subscription) |
SubscriberSecurity |
Возвращает контекст безопасности, используемый для подключения к подписчику. (Унаследовано от Subscription) |
SubscriberType |
Возвращает или задает, является ли подписка клиентской или серверной. |
SubscriptionDBName |
Возвращает или задает имя базы данных на подписчике, который получает реплицированные данные. (Унаследовано от Subscription) |
SubscriptionType |
Возвращает значение, указывающее, является ли регистрация подписки сделанной для принудительной подписки или подписки по запросу. (Унаследовано от Subscription) |
SynchronizationAgent |
Возвращает экземпляр класса MergeSynchronizationAgent, который может использоваться для синхронизации подписки. |
SynchronizationAgentName |
Возвращает или задает имя задания агента, которое создано для синхронизации подписки. (Унаследовано от Subscription) |
SynchronizationAgentProcessSecurity |
Возвращает контекст безопасности, используемый для указания учетной записи Microsoft Windows, от которой выполняется задание агента синхронизации для синхронизации подписки. (Унаследовано от Subscription) |
SyncType |
Возвращает или задает способ инициализации подписки. (Унаследовано от Subscription) |
UseInteractiveResolver |
Возвращает или задает значение, определяющее, доступен ли интерактивный арбитр конфликтов в процессе синхронизации. |
UserData |
Возвращает или задает свойство объекта, которое позволяет пользователям прикреплять свои собственные данные к объекту. (Унаследовано от ReplicationObject) |
Методы
CheckValidCreation() |
Проверяет создание допустимой репликации. (Унаследовано от ReplicationObject) |
CheckValidDefinition(Boolean) |
Указывает, является ли определение подписки допустимым. (Унаследовано от Subscription) |
CommitPropertyChanges() |
Отправляет все кэшированные инструкции изменения свойств экземпляру Microsoft SQL Server. (Унаследовано от ReplicationObject) |
Create() |
Создает регистрацию подписки на издателе. (Унаследовано от Subscription) |
Decouple() |
Отделяет связанный объект репликации от сервера. (Унаследовано от ReplicationObject) |
GetChangeCommand(StringBuilder, String, String) |
Возвращает команду на изменение из репликации. (Унаследовано от ReplicationObject) |
GetCreateCommand(StringBuilder, Boolean, ScriptOptions) |
Возвращает команду на создание из репликации. (Унаследовано от ReplicationObject) |
GetDropCommand(StringBuilder, Boolean) |
Возвращает команду на удаление из репликации. (Унаследовано от ReplicationObject) |
InternalRefresh(Boolean) |
Инициирует внутреннее обновление из репликации. (Унаследовано от ReplicationObject) |
Load() |
Загружает свойства существующего объекта с сервера. (Унаследовано от ReplicationObject) |
LoadProperties() |
Загружает свойства существующего объекта с сервера. (Унаследовано от ReplicationObject) |
Refresh() |
Повторно загружает свойства объекта. (Унаследовано от ReplicationObject) |
Reinitialize(Boolean) |
Отмечает подписку на публикацию слиянием для повторной инициализации. |
Remove() |
Удаляет регистрацию подписки на издателе и удаляет объекты репликации на подписчике для принудительной подписки. (Унаследовано от Subscription) |
Script(ScriptOptions) |
Возвращает скрипт Transact-SQL, который можно использовать для создания или удаления подписки. (Унаследовано от Subscription) |
StopSynchronizationJob() |
Пытается остановить запущенное задание агента слияния, в настоящее время синхронизирующего подписку. |
SynchronizeWithJob() |
Запускает задание агента для синхронизации подписки. |