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