MergeSubscription Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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. |