MergeSubscription Classe

Definizione

Rappresenta un abbonamento a una pubblicazione di fusione registrata presso 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
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 sia con abbonamenti pull che push a una pubblicazione di fusione.

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

Sicurezza dei Thread

Qualsiasi membro pubblico statico (Sharedin Microsoft Visual Basic) di questo tipo è sicuro per operazioni multithread. Non è garantito che tutti i membri dell'istanza siano thread-safe.

Costruttori

Nome Descrizione
MergeSubscription()

Crea una nuova istanza della classe MergeSubscription.

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

Crea una nuova istanza della MergeSubscription classe con la connessione specificata al Publisher e le proprietà che definiscono in modo univoco l'abbonamento.

Proprietà

Nome Descrizione
AgentJobId

Ottiene l'ID del job agente usato per sincronizzare l'abbonamento.

(Ereditato da Subscription)
AgentOffload

Ottiene o imposta se l'agente di sincronizzazione gira su un computer diverso da quello in cui è stato creato il lavoro dell'agente. Questa proprietà non è più supportata per i distributori che eseguono Microsoft SQL Server 2005 e versioni successive.

(Ereditato da Subscription)
AgentOffloadServer

Ottiene o imposta il nome del computer remoto dove l'agente viene eseguito quando si utilizza l'attivazione remota dell'agente.

(Ereditato da Subscription)
AgentSchedule

Ottiene l'orario per il lavoro dell'agente utilizzato per sincronizzare l'abbonamento.

(Ereditato da Subscription)
CachePropertyChanges

Ottiene o stabilisce se memorizzare le modifiche apportate alle proprietà di replicazione o applicarle immediatamente.

(Ereditato da ReplicationObject)
ConnectionContext

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

(Ereditato da ReplicationObject)
CreateSyncAgentByDefault

Ottiene o stabilisce se il job agente utilizzato per sincronizzare l'abbonamento è creato di default.

(Ereditato da Subscription)
DatabaseName

Ottiene o imposta il nome del database della pubblicazione.

(Ereditato da Subscription)
Description

Ottiene o imposta una descrizione testuale dell'abbonamento alla fusione.

EnabledForSynchronizationManager

Specifica se l'abbonamento può essere sincronizzato utilizzando Microsoft Windows Synchronization Manager.

(Ereditato da Subscription)
HostName

Ottiene o imposta il valore fornito alla funzione HOST_NAME quando questa funzione è utilizzata nel filtro a righe parametrizzate che definisce la partizione dati dell'abbonato.

IsExistingObject

Ottiene se l'oggetto esiste o meno sul server.

(Ereditato da ReplicationObject)
Name

Riceve il nome assegnato a un abbonamento esistente.

(Ereditato da Subscription)
Priority

Ottiene o imposta il valore di priorità relativa assegnato a un abbonamento al server.

PublicationName

Ottiene o imposta il nome della pubblicazione a cui l'abbonamento è abbonato.

(Ereditato da Subscription)
PublisherSecurity

Ottiene il contesto di sicurezza usato dal agente di merge per connettersi al Publisher.

SqlServerName

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

(Ereditato da ReplicationObject)
Status

Riceve lo stato dell'abbonamento.

(Ereditato da Subscription)
SubscriberName

Ottiene o imposta il nome dell'istanza di Microsoft SQL Server che è l'Abbonato.

(Ereditato da Subscription)
SubscriberSecurity

Ottiene il contesto di sicurezza usato per connettersi all'abbonato.

(Ereditato da Subscription)
SubscriberType

Ottiene o imposta se l'abbonamento sia un abbonamento client o server.

SubscriptionDBName

Ottiene o imposta il nome del database sull'Abbonato che riceve i dati replicati.

(Ereditato da Subscription)
SubscriptionType

Capisce se la registrazione dell'abbonamento è per un abbonamento push o pull.

(Ereditato da Subscription)
SynchronizationAgent

Ottiene un'istanza della MergeSynchronizationAgent classe che può essere utilizzata per sincronizzare l'abbonamento.

SynchronizationAgentName

Ottiene o imposta il nome del job agente creato per sincronizzare l'abbonamento.

(Ereditato da Subscription)
SynchronizationAgentProcessSecurity

Ottiene il contesto di sicurezza usato per specificare l'account Microsoft Windows sotto cui il job dell'agente di sincronizzazione viene eseguito per sincronizzare l'abbonamento.

(Ereditato da Subscription)
SyncType

Ottiene o imposta il modo in cui l'abbonamento viene inizializzato.

(Ereditato da Subscription)
UseInteractiveResolver

Ottiene o stabilisce se il Resolver Interattivo viene utilizzato durante il processo di sincronizzazione.

UserData

Ottiene o imposta una proprietà oggetto che permette agli utenti di allegare i propri dati all'oggetto.

(Ereditato da ReplicationObject)

Metodi

Nome Descrizione
CheckValidCreation()

Controlla la valida creazione della replica.

(Ereditato da ReplicationObject)
CheckValidDefinition(Boolean)

Indica se la definizione di abbonamento è valida.

(Ereditato da Subscription)
CommitPropertyChanges()

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

(Ereditato da ReplicationObject)
Create()

Crea la registrazione dell'abbonamento presso l'Publisher.

(Ereditato da Subscription)
Decouple()

Disaccoppia l'oggetto di replica di riferimento dal server.

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

Restituisce il comando change dalla replicazione.

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

Restituisce il comando create dalla replicazione.

(Ereditato da ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Restituisce il comando drop dalla replicazione.

(Ereditato da ReplicationObject)
InternalRefresh(Boolean)

Avvia un aggiornamento interno dalla replicazione.

(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)

Segna l'abbonamento di fusione per la riinizializzazione.

Remove()

Elimina la registrazione dell'abbonamento presso l'Publisher e rimuove gli oggetti di replica presso l'Abbonato per un abbonamento push.

(Ereditato da Subscription)
Script(ScriptOptions)

Restituisce uno script Transact-SQL che può essere usato per creare o eliminare l'abbonamento.

(Ereditato da Subscription)
StopSynchronizationJob()

Tentativi di fermare un lavoro agente di merge in esecuzione che sta sincronizzando l'abbonamento.

SynchronizeWithJob()

Avvia il lavoro dell'agente per sincronizzare l'abbonamento.

Si applica a

Vedi anche