MergeSubscription Classe

Définition

Représente un abonnement à une publication fusionnée enregistrée auprès de l’Publisher.

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 des abonnements pull et push à une publication fusionnée.

Lors de la configuration d’un Publisher avec un distributeur distant, les valeurs fournies pour tous les paramètres, y compris SynchronizationAgentProcessSecurity, sont envoyées au distributeur 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, voir sp_reinitmergesubscription (Transact-SQL).

Sécurité des threads

Tout membre statique public (Shareddans Microsoft Visual Basic) de ce type est sûr pour les opérations multithreads. Il n'y a aucune garantie que les membres d’instance soient thread-safe.

Constructeurs

Nom Description
MergeSubscription()

Crée une instance de la classe MergeSubscription.

MergeSubscription(String, String, String, String, ServerConnection)

Crée une nouvelle instance de la MergeSubscription classe avec la connexion spécifiée au Publisher et les propriétés qui définissent de manière unique l’abonnement.

Propriétés

Nom Description
AgentJobId

Obtient l’ID du job 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ù la tâche de l’agent a été créée. Cette propriété n’est plus prise en charge par les distributeurs fonctionnant sous 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’activation de l’agent à distance.

(Hérité de Subscription)
AgentSchedule

Obtient le planning du job agent utilisé pour synchroniser l’abonnement.

(Hérité de Subscription)
CachePropertyChanges

Obtient ou définit s’il faut mettre en cache les modifications apportées aux propriétés de réplication ou les appliquer immédiatement.

(Hérité de ReplicationObject)
ConnectionContext

Obtient ou définit la connexion vers une instance de Microsoft SQL Server.

(Hérité de ReplicationObject)
CreateSyncAgentByDefault

Obtient ou détermine si le job 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 à la fusion.

EnabledForSynchronizationManager

Précise si l’abonnement peut être synchronisé via Microsoft Windows Gestionnaire de synchronisation.

(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étrés qui définit la partition de données de l’abonné.

IsExistingObject

Ça détermine si l’objet existe sur le serveur ou non.

(Hérité de ReplicationObject)
Name

On attribue le nom à un abonnement existant.

(Hérité de Subscription)
Priority

Obtient ou définit la valeur de priorité relative attribuée à un abonnement serveur.

PublicationName

Obtient ou définit le nom de la publication à laquelle l’abonnement est abonné.

(Hérité de Subscription)
PublisherSecurity

Obtient le contexte de sécurité utilisé par le Agent de fusion pour se connecter au Publisher.

SqlServerName

Obtient le nom de l’instance Microsoft SQL Server à laquelle cet objet est connecté.

(Hérité de ReplicationObject)
Status

On obtient le statut de l’abonnement.

(Hérité de Subscription)
SubscriberName

Obtient ou définit le nom de l’instance de Microsoft SQL Server qui est 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 client ou un 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

Cela détermine si l’inscription à l’abonnement est un abonnement push ou pull.

(Hérité de Subscription)
SynchronizationAgent

Obtient une instance de la MergeSynchronizationAgent classe qui peut être utilisée pour synchroniser l’abonnement.

SynchronizationAgentName

Obtient ou définit le nom du job 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 job 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 Résolveur Interactif est utilisé pendant le processus de synchronisation.

UserData

Obtient ou définit une propriété objet qui permet aux utilisateurs d’attacher leurs propres données à l’objet.

(Hérité de ReplicationObject)

Méthodes

Nom Description
CheckValidCreation()

Vérifie la création valide de la réplication.

(Hérité de ReplicationObject)
CheckValidDefinition(Boolean)

Indique si la définition par 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 à l’abonnement chez l’Publisher.

(Hérité de Subscription)
Decouple()

Découple l’objet de réplication référencé du serveur.

(Hérité de ReplicationObject)
GetChangeCommand(StringBuilder, String, String)

Retourne la commande de changement de la réplication.

(Hérité de ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Retourne la commande create de la réplication.

(Hérité de ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Retourne la commande drop de la réplication.

(Hérité de ReplicationObject)
InternalRefresh(Boolean)

Initie un rafraîchissement interne à partir de la réplication.

(Hérité de ReplicationObject)
Load()

Charge les propriétés d’un objet existant depuis le serveur.

(Hérité de ReplicationObject)
LoadProperties()

Charge les propriétés d’un objet existant depuis le serveur.

(Hérité de ReplicationObject)
Refresh()

Recharge les propriétés de l’objet.

(Hérité de ReplicationObject)
Reinitialize(Boolean)

Marque l’abonnement de fusion pour la réinitialisation.

Remove()

Supprime l’enregistrement d’abonnement au Publisher et supprime les objets de réplication auprès de l’abonné pour un abonnement push.

(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 Agent de fusion en cours d’exécution qui synchronise actuellement l’abonnement.

SynchronizeWithJob()

Lance le travail de l’agent pour synchroniser l’abonnement.

S’applique à

Voir aussi