Condividi tramite


MergeSubscription Classe

Definizione

Rappresenta una sottoscrizione di una pubblicazione di tipo merge registrata nel server di pubblicazione.

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
Ereditarietà

Esempio

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

Commenti

La MergeSubscription classe viene utilizzata con sottoscrizioni pull e push in una pubblicazione di tipo merge.

Quando si configura un server di pubblicazione con un server di distribuzione remoto, i valori specificati per tutti i parametri, incluso SynchronizationAgentProcessSecurity, vengono inviati al server di distribuzione come testo normale. È consigliabile crittografare la connessione tra il server di pubblicazione e il server di distribuzione remoto prima di chiamare il metodo Create. Per altre informazioni, vedere sp_reinitmergesubscription (Transact-SQL).

Thread safety

Tutti i membri statici pubblici (Shared in Microsoft Visual Basic) di questo tipo sono sicuri per le operazioni multithreading. Non è invece garantita la sicurezza dei membri dell'istanza.

Costruttori

MergeSubscription()

Crea una nuova istanza della classe MergeSubscription.

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

Crea una nuova istanza della classe MergeSubscription con la connessione al server di pubblicazione specificata e le proprietà che definiscono in modo univoco la sottoscrizione.

Proprietà

AgentJobId

Ottiene l'ID del processo dell'agente utilizzato per sincronizzare la sottoscrizione.

(Ereditato da Subscription)
AgentOffload

Ottiene o imposta un valore che indica se l'agente di sincronizzazione viene eseguito in un computer diverso da quello in cui è stato creato il processo dell'agente. Questa proprietà non è più supportata per i server di distribuzione che eseguono Microsoft SQL Server 2005 e versioni successive.

(Ereditato da Subscription)
AgentOffloadServer

Ottiene o imposta il nome del computer remoto in cui viene eseguito l'agente quando si utilizza l'attivazione remota degli agenti.

(Ereditato da Subscription)
AgentSchedule

Ottiene la pianificazione per il processo dell'agente utilizzato per sincronizzare la sottoscrizione.

(Ereditato da Subscription)
CachePropertyChanges

Ottiene o imposta un valore che indica se memorizzare nella cache o se applicare immediatamente le modifiche apportate alle proprietà di replica.

(Ereditato da ReplicationObject)
ConnectionContext

Ottiene o imposta la connessione a un'istanza di Microsoft SQL Server.

(Ereditato da ReplicationObject)
CreateSyncAgentByDefault

Ottiene o imposta un valore che indica se creare per impostazione predefinita il processo dell'agente utilizzato per sincronizzare la sottoscrizione.

(Ereditato da Subscription)
DatabaseName

Ottiene o imposta il nome del database di pubblicazione.

(Ereditato da Subscription)
Description

Ottiene o imposta una descrizione in formato testo della sottoscrizione di tipo merge.

EnabledForSynchronizationManager

Specifica se la sottoscrizione può essere sincronizzata tramite Gestione sincronizzazione Microsoft Windows.

(Ereditato da Subscription)
HostName

Ottiene o imposta il valore fornito alla funzione HOST_NAME quando questa funzione viene utilizzata nel filtro di riga con parametri che definisce la partizione di dati del Sottoscrittore.

IsExistingObject

Ottiene un valore che indica se l'oggetto esiste nel server.

(Ereditato da ReplicationObject)
Name

Ottiene il nome assegnato a una sottoscrizione esistente.

(Ereditato da Subscription)
Priority

Ottiene o imposta il valore di priorità relativa assegnato a una sottoscrizione server.

PublicationName

Ottiene o imposta il nome della pubblicazione sottoscritta dalla sottoscrizione.

(Ereditato da Subscription)
PublisherSecurity

Ottiene il contesto di sicurezza utilizzato dall'agente di merge per connettersi al server di pubblicazione.

SqlServerName

Ottiene il nome dell'istanza di Microsoft SQL Server a cui è connesso questo oggetto.

(Ereditato da ReplicationObject)
Status

Ottiene lo stato della sottoscrizione.

(Ereditato da Subscription)
SubscriberName

Ottiene o imposta il nome dell'istanza di Microsoft SQL Server che rappresenta il Sottoscrittore.

(Ereditato da Subscription)
SubscriberSecurity

Ottiene il contesto di sicurezza utilizzato per la connessione al Sottoscrittore.

(Ereditato da Subscription)
SubscriberType

Ottiene o imposta un valore che indica se la sottoscrizione è una sottoscrizione client o server.

SubscriptionDBName

Ottiene o imposta il nome del database sul Sottoscrittore che riceve i dati replicati.

(Ereditato da Subscription)
SubscriptionType

Ottiene un valore che indica se la registrazione della sottoscrizione è per una sottoscrizione push o pull.

(Ereditato da Subscription)
SynchronizationAgent

Ottiene un'istanza della classe MergeSynchronizationAgent che può essere utilizzata per sincronizzare la sottoscrizione.

SynchronizationAgentName

Ottiene o imposta il nome del processo dell'agente creato per sincronizzare la sottoscrizione.

(Ereditato da Subscription)
SynchronizationAgentProcessSecurity

Ottiene il contesto di sicurezza utilizzato per specificare l'account di Microsoft Windows in cui viene eseguito il processo dell'agente di sincronizzazione per sincronizzare la sottoscrizione.

(Ereditato da Subscription)
SyncType

Ottiene o imposta la modalità di inizializzazione della sottoscrizione.

(Ereditato da Subscription)
UseInteractiveResolver

Ottiene o imposta un valore che indica se il sistema di risoluzione dei conflitti interattivo viene utilizzato durante il processo di sincronizzazione.

UserData

Ottiene o imposta una proprietà di un oggetto che consente agli utenti di collegare i relativi dati all'oggetto in questione.

(Ereditato da ReplicationObject)

Metodi

CheckValidCreation()

Controlla la creazione della replica valida.

(Ereditato da ReplicationObject)
CheckValidDefinition(Boolean)

Indica se la definizione della sottoscrizione è valida.

(Ereditato da Subscription)
CommitPropertyChanges()

Invia tutte le istruzioni di modifica delle proprietà memorizzate nella cache all'istanza di Microsoft SQL Server.

(Ereditato da ReplicationObject)
Create()

Crea la registrazione della sottoscrizione nel server di pubblicazione.

(Ereditato da Subscription)
Decouple()

Disaccoppia dal server l'oggetto di replica a cui si fa riferimento.

(Ereditato da ReplicationObject)
GetChangeCommand(StringBuilder, String, String)

Restituisce il comando di modifica dalla replica.

(Ereditato da ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Restituisce il comando di creazione dalla replica.

(Ereditato da ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Restituisce il comando di eliminazione dalla replica.

(Ereditato da ReplicationObject)
InternalRefresh(Boolean)

Avvia un aggiornamento interno dalla replica.

(Ereditato da ReplicationObject)
Load()

Carica le proprietà di un oggetto esistente dal server.

(Ereditato da ReplicationObject)
LoadProperties()

Carica le proprietà di un oggetto esistente dal server.

(Ereditato da ReplicationObject)
Refresh()

Ricarica le proprietà dell'oggetto.

(Ereditato da ReplicationObject)
Reinitialize(Boolean)

Contrassegna per la reinizializzazione la sottoscrizione di tipo merge.

Remove()

Elimina la registrazione della sottoscrizione nel server di pubblicazione e rimuove gli oggetti di replica nel Sottoscrittore per una sottoscrizione push.

(Ereditato da Subscription)
Script(ScriptOptions)

Restituisce uno script Transact-SQL che può essere usato per creare o eliminare la sottoscrizione.

(Ereditato da Subscription)
StopSynchronizationJob()

Tenta di arrestare un processo dell'agente di merge che sta sincronizzando la sottoscrizione.

SynchronizeWithJob()

Avvia il processo dell'agente per sincronizzare la sottoscrizione.

Si applica a

Vedi anche