MergeSubscription Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un abonnement à une publication de fusion inscrite sur le serveur de publication.
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
- Héritage
Exemples
// 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
Remarques
La MergeSubscription classe est utilisée avec les abonnements pull et push à une publication de fusion.
Lors de la configuration d’un serveur de publication avec un serveur de distribution distant, les valeurs fournies pour tous les paramètres, y compris SynchronizationAgentProcessSecurity, sont envoyées au serveur de distribution sous forme de texte brut. Vous devez chiffrer la connexion entre le serveur de publication et son serveur de distribution distant avant d'appeler la méthode Create . Pour plus d’informations, consultez sp_reinitmergesubscription (Transact-SQL).
Cohérence de thread
Tous les membres statiques publics (Shared
dans Microsoft Visual Basic) de ce type sont sécurisés pour les opérations multithread. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.
Constructeurs
MergeSubscription() |
Crée une instance de la classe MergeSubscription. |
MergeSubscription(String, String, String, String, ServerConnection) |
Crée une nouvelle instance de la classe MergeSubscription avec la connexion spécifiée au serveur de publication et les propriétés qui définissent de façon unique l'abonnement. |
Propriétés
AgentJobId |
Obtient l'ID du travail de l'agent utilisé pour synchroniser l'abonnement. (Hérité de Subscription) |
AgentOffload |
Obtient ou définit si l'agent de synchronisation s'exécute sur un ordinateur autre que celui où le travail de l'agent a été créé. Cette propriété n’est plus prise en charge pour les distributeurs exécutant Microsoft SQL Server 2005 et versions ultérieures. (Hérité de Subscription) |
AgentOffloadServer |
Obtient ou définit le nom de l'ordinateur distant où l'agent s'exécute lors de l'utilisation de l'activation de l'agent distant. (Hérité de Subscription) |
AgentSchedule |
Obtient la planification pour le travail de l'Agent utilisé pour synchroniser l'abonnement. (Hérité de Subscription) |
CachePropertyChanges |
Obtient ou définit s'il faut mettre en cache des modifications effectuées sur les propriétés de réplication ou les appliquer immédiatement. (Hérité de ReplicationObject) |
ConnectionContext |
Obtient ou définit la connexion à une instance de Microsoft SQL Server. (Hérité de ReplicationObject) |
CreateSyncAgentByDefault |
Obtient ou définit si le travail de l'agent utilisé pour synchroniser l'abonnement est créé par défaut. (Hérité de Subscription) |
DatabaseName |
Obtient ou définit le nom de la base de données de publication. (Hérité de Subscription) |
Description |
Obtient ou définit une description textuelle de l'abonnement de fusion. |
EnabledForSynchronizationManager |
Spécifie si l’abonnement peut être synchronisé à l’aide du Gestionnaire de synchronisation Microsoft Windows. (Hérité de Subscription) |
HostName |
Obtient ou définit la valeur fournie à la fonction HOST_NAME lorsque cette fonction est utilisée dans le filtre de lignes paramétrable qui définit la partition de données de l’Abonné. |
IsExistingObject |
Détermine si l'objet existe ou non sur le serveur. (Hérité de ReplicationObject) |
Name |
Obtient le nom affecté à un abonnement existant. (Hérité de Subscription) |
Priority |
Obtient ou définit la valeur de priorité relative affectée à un abonnement serveur. |
PublicationName |
Obtient ou définit le nom de la publication à laquelle l'abonnement s'abonne. (Hérité de Subscription) |
PublisherSecurity |
Obtient le contexte de sécurité utilisé par l'Agent de fusion pour se connecter au serveur de publication. |
SqlServerName |
Obtient le nom de l’instance Microsoft SQL Server à laquelle cet objet est connecté. (Hérité de ReplicationObject) |
Status |
Obtient l'état de l'abonnement (Hérité de Subscription) |
SubscriberName |
Obtient ou définit le nom de l'instance de Microsoft SQL Server qui représente l'Abonné. (Hérité de Subscription) |
SubscriberSecurity |
Obtient le contexte de sécurité utilisé pour se connecter à l'Abonné. (Hérité de Subscription) |
SubscriberType |
Obtient ou définit si l'abonnement est un abonnement client ou serveur. |
SubscriptionDBName |
Obtient ou définit le nom de la base de données sur l'Abonné qui reçoit les données répliquées. (Hérité de Subscription) |
SubscriptionType |
Détermine si l'inscription d'abonnement est pour un abonnement par émission ou par extraction de données. (Hérité de Subscription) |
SynchronizationAgent |
Obtient une instance de la classe MergeSynchronizationAgent qui peut être utilisée pour synchroniser l'abonnement. |
SynchronizationAgentName |
Obtient ou définit le nom du travail de l'agent créé pour synchroniser l'abonnement. (Hérité de Subscription) |
SynchronizationAgentProcessSecurity |
Obtient le contexte de sécurité utilisé pour spécifier le compte Microsoft Windows sous lequel le travail de l’agent de synchronisation s’exécute pour synchroniser l’abonnement. (Hérité de Subscription) |
SyncType |
Obtient ou définit la manière dont l'abonnement est initialisé. (Hérité de Subscription) |
UseInteractiveResolver |
Obtient ou définit si le programme de résolution interactif est utilisé pendant le processus de synchronisation. |
UserData |
Obtient ou définit une propriété d'objet qui permet aux utilisateurs d'attacher leurs propres données à l'objet. (Hérité de ReplicationObject) |
Méthodes
CheckValidCreation() |
Vérifie la création de la réplication valide. (Hérité de ReplicationObject) |
CheckValidDefinition(Boolean) |
Indique si la définition d'abonnement est valide. (Hérité de Subscription) |
CommitPropertyChanges() |
Envoie toutes les instructions de modification de propriété mises en cache à l’instance de Microsoft SQL Server. (Hérité de ReplicationObject) |
Create() |
Crée l'inscription d'abonnement sur le serveur de publication. (Hérité de Subscription) |
Decouple() |
Dissocie l'objet de réplication référencé du serveur. (Hérité de ReplicationObject) |
GetChangeCommand(StringBuilder, String, String) |
Retourne la commande de modification de la réplication. (Hérité de ReplicationObject) |
GetCreateCommand(StringBuilder, Boolean, ScriptOptions) |
Retourne la commande de création de la réplication. (Hérité de ReplicationObject) |
GetDropCommand(StringBuilder, Boolean) |
Retourne la commande de suppression de la réplication. (Hérité de ReplicationObject) |
InternalRefresh(Boolean) |
Initialise une actualisation interne de la réplication. (Hérité de ReplicationObject) |
Load() |
Charge les propriétés d'un objet existant à partir du serveur. (Hérité de ReplicationObject) |
LoadProperties() |
Charge les propriétés d'un objet existant à partir du serveur. (Hérité de ReplicationObject) |
Refresh() |
Recharge les propriétés de l'objet. (Hérité de ReplicationObject) |
Reinitialize(Boolean) |
Signale l'abonnement de fusion pour la réinitialisation. |
Remove() |
Supprime l'inscription d'abonnement sur le serveur de publication et supprime des objets de réplication sur l'Abonné pour un abonnement par émission de données. (Hérité de Subscription) |
Script(ScriptOptions) |
Retourne un script Transact-SQL qui peut être utilisé pour créer ou supprimer l’abonnement. (Hérité de Subscription) |
StopSynchronizationJob() |
Tente d'arrêter un travail de l'Agent de fusion en cours d'exécution qui synchronise actuellement l'abonnement. |
SynchronizeWithJob() |
Démarre le travail de l'Agent pour synchroniser l'abonnement. |