MergeSynchronizationAgent 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.
Fornisce la funzionalità di Agente merge repliche.
public ref class MergeSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::IMergeSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("ee5ee47e-6d29-448f-b2d2-f8e632db336a")]
public class MergeSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.IMergeSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("ee5ee47e-6d29-448f-b2d2-f8e632db336a")>]
type MergeSynchronizationAgent = class
inherit MarshalByRefObject
interface IDisposable
interface IMergeSynchronizationAgent
Public Class MergeSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, IMergeSynchronizationAgent
- Ereditarietà
-
MergeSynchronizationAgent
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente viene chiamato il Synchronize metodo nell'istanza della MergeSynchronizationAgent classe a cui viene eseguito l'accesso dalla SynchronizationAgent proprietà per sincronizzare la sottoscrizione push.
// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);
MergeSubscription subscription;
try
{
// Connect to the Publisher
conn.Connect();
// Define the subscription.
subscription = new MergeSubscription();
subscription.ConnectionContext = conn;
subscription.DatabaseName = publicationDbName;
subscription.PublicationName = publicationName;
subscription.SubscriptionDBName = subscriptionDbName;
subscription.SubscriberName = subscriberName;
// If the push subscription exists, start the synchronization.
if (subscription.LoadProperties())
{
// Check that we have enough metadata to start the agent.
if (subscription.SubscriberSecurity != null)
{
// Synchronously start the Merge Agent for the subscription.
subscription.SynchronizationAgent.Synchronize();
}
else
{
throw new ApplicationException("There is insufficent metadata to " +
"synchronize the subscription. Recreate the subscription with " +
"the agent job or supply the required agent properties at run time.");
}
}
else
{
// Do something here if the push subscription does not exist.
throw new ApplicationException(String.Format(
"The subscription to '{0}' does not exist on {1}",
publicationName, subscriberName));
}
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("The subscription could not be synchronized.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Dim subscription As MergeSubscription
Try
' Connect to the Publisher
conn.Connect()
' Define the subscription.
subscription = New MergeSubscription()
subscription.ConnectionContext = conn
subscription.DatabaseName = publicationDbName
subscription.PublicationName = publicationName
subscription.SubscriptionDBName = subscriptionDbName
subscription.SubscriberName = subscriberName
' If the push subscription exists, start the synchronization.
If subscription.LoadProperties() Then
' Check that we have enough metadata to start the agent.
If Not subscription.SubscriberSecurity Is Nothing Then
' Synchronously start the Merge Agent for the subscription.
' Log agent messages to an output file.
subscription.SynchronizationAgent.Output = "mergeagent.log"
subscription.SynchronizationAgent.OutputVerboseLevel = 2
subscription.SynchronizationAgent.Synchronize()
Else
Throw New ApplicationException("There is insufficent metadata to " + _
"synchronize the subscription. Recreate the subscription with " + _
"the agent job or supply the required agent properties at run time.")
End If
Else
' Do something here if the push subscription does not exist.
Throw New ApplicationException(String.Format( _
"The subscription to '{0}' does not exist on {1}", _
publicationName, subscriberName))
End If
Catch ex As Exception
' Implement appropriate error handling here.
Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
conn.Disconnect()
End Try
Nell'esempio MergeSynchronizationAgent seguente viene usata un'istanza della classe per sincronizzare una sottoscrizione di tipo merge. Poiché la sottoscrizione pull è stata creata usando un valore di false
per CreateSyncAgentByDefault, è necessario specificare proprietà aggiuntive.
// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string distributorName = distributorInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";
string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll";
// Create a connection to the Subscriber.
ServerConnection conn = new ServerConnection(subscriberName);
MergePullSubscription subscription;
MergeSynchronizationAgent agent;
try
{
// Connect to the Subscriber.
conn.Connect();
// Define the pull subscription.
subscription = new MergePullSubscription();
subscription.ConnectionContext = conn;
subscription.DatabaseName = subscriptionDbName;
subscription.PublisherName = publisherName;
subscription.PublicationDBName = publicationDbName;
subscription.PublicationName = publicationName;
// If the pull subscription exists, then start the synchronization.
if (subscription.LoadProperties())
{
// Get the agent for the subscription.
agent = subscription.SynchronizationAgent;
// Check that we have enough metadata to start the agent.
if (agent.PublisherSecurityMode == null)
{
// Set the required properties that could not be returned
// from the MSsubscription_properties table.
agent.PublisherSecurityMode = SecurityMode.Integrated;
agent.DistributorSecurityMode = SecurityMode.Integrated;
agent.Distributor = publisherName;
agent.HostName = hostname;
// Set optional Web synchronization properties.
agent.UseWebSynchronization = true;
agent.InternetUrl = webSyncUrl;
agent.InternetSecurityMode = SecurityMode.Standard;
agent.InternetLogin = winLogin;
agent.InternetPassword = winPassword;
}
// Enable agent output to the console.
agent.OutputVerboseLevel = 1;
agent.Output = "";
// Synchronously start the Merge Agent for the subscription.
agent.Synchronize();
}
else
{
// Do something here if the pull subscription does not exist.
throw new ApplicationException(String.Format(
"A subscription to '{0}' does not exist on {1}",
publicationName, subscriberName));
}
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("The subscription could not be " +
"synchronized. Verify that the subscription has " +
"been defined correctly.", ex);
}
finally
{
conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
Dim hostname As String = "adventure-works\garrett1"
Dim webSyncUrl As String = "https://" + publisherInstance + "/SalesOrders/replisapi.dll"
' Create a connection to the Subscriber.
Dim conn As ServerConnection = New ServerConnection(subscriberName)
Dim subscription As MergePullSubscription
Dim agent As MergeSynchronizationAgent
Try
' Connect to the Subscriber.
conn.Connect()
' Define the pull subscription.
subscription = New MergePullSubscription()
subscription.ConnectionContext = conn
subscription.DatabaseName = subscriptionDbName
subscription.PublisherName = publisherName
subscription.PublicationDBName = publicationDbName
subscription.PublicationName = publicationName
' If the pull subscription exists, then start the synchronization.
If subscription.LoadProperties() Then
' Get the agent for the subscription.
agent = subscription.SynchronizationAgent
' Check that we have enough metadata to start the agent.
If agent.PublisherSecurityMode = Nothing Then
' Set the required properties that could not be returned
' from the MSsubscription_properties table.
agent.PublisherSecurityMode = SecurityMode.Integrated
agent.Distributor = publisherInstance
agent.DistributorSecurityMode = SecurityMode.Integrated
agent.HostName = hostname
' Set optional Web synchronization properties.
agent.UseWebSynchronization = True
agent.InternetUrl = webSyncUrl
agent.InternetSecurityMode = SecurityMode.Standard
agent.InternetLogin = winLogin
agent.InternetPassword = winPassword
End If
' Enable agent logging to the console.
agent.OutputVerboseLevel = 1
agent.Output = ""
' Synchronously start the Merge Agent for the subscription.
agent.Synchronize()
Else
' Do something here if the pull subscription does not exist.
Throw New ApplicationException(String.Format( _
"A subscription to '{0}' does not exist on {1}", _
publicationName, subscriberName))
End If
Catch ex As Exception
' Implement appropriate error handling here.
Throw New ApplicationException("The subscription could not be " + _
"synchronized. Verify that the subscription has " + _
"been defined correctly.", ex)
Finally
conn.Disconnect()
End Try
Commenti
La MergeSynchronizationAgent classe supporta la possibilità di eseguire le attività di replica seguenti:
Sincronizzare le sottoscrizioni.
Specificare se solo la fase di caricamento, solo la fase di download o entrambe le fasi vengono eseguite durante la sincronizzazione.
Verificare che una sottoscrizione disponga dei dati previsti.
Specificare una cartella snapshot diversa, da cui è possibile applicare lo snapshot iniziale per una sottoscrizione.
Costruttori
MergeSynchronizationAgent() |
Crea un'istanza della classe MergeSynchronizationAgent. |
Proprietà
AlternateSynchronizationPartnerCollection |
Ottiene i partner di sincronizzazione alternativi per una sottoscrizione. |
AltSnapshotFolder |
Ottiene o imposta la cartella snapshot alternativa per la sottoscrizione. |
ComErrorCollection |
Ottiene una raccolta di errori generati dall'agente di replica. |
Distributor |
Ottiene o imposta il nome dell'istanza di Microsoft SQL Server che rappresenta il server di distribuzione per la sottoscrizione. |
DistributorAddress |
Ottiene o imposta l'indirizzo di rete utilizzato per connettersi al server di distribuzione quando viene specificata la proprietà DistributorNetwork. |
DistributorEncryptedPassword |
Ottiene o imposta la password crittografata del server di distribuzione. |
DistributorLogin |
Ottiene o imposta il nome di accesso utilizzato durante la connessione al server di distribuzione usando SQL Server Autenticazione. |
DistributorNetwork |
Ottiene o imposta la libreria di rete client utilizzata durante la connessione al server di distribuzione. |
DistributorPassword |
Imposta la password usata durante la connessione al server di distribuzione usando SQL Server Autenticazione. |
DistributorSecurityMode |
Ottiene o imposta la modalità di sicurezza utilizzata durante la connessione al server di distribuzione. |
DownloadGenerationsPerBatch |
Ottiene o imposta il numero di generazioni da elaborare in un singolo batch durante il download delle modifiche dal server di pubblicazione al Sottoscrittore. Una generazione è definita come un gruppo logico di modifiche per articolo. |
DynamicSnapshotLocation |
Ottiene o imposta la posizione dello snapshot partizionato per questo Sottoscrittore. |
ExchangeType |
Ottiene o imposta il modo in cui viene effettuato lo scambio di dati durante la sincronizzazione. |
FileTransferType |
Ottiene o imposta il modo in cui i file di snapshot iniziali vengono trasferiti al Sottoscrittore. |
HostName |
Ottiene o imposta il valore utilizzato dal agente di merge quando valuta un filtro con parametri che usa la funzione HOST_NAME. |
InputMessageFile |
Ottiene o imposta il file di messaggi di input. |
InternetLogin |
Ottiene o imposta il nome dell'account di accesso utilizzato con la sincronizzazione Web durante la connessione al server di pubblicazione tramite l'autenticazione Internet. |
InternetPassword |
Imposta la password per la proprietà InternetLogin utilizzata con la sincronizzazione Web durante la connessione al server di pubblicazione tramite l'autenticazione Internet. |
InternetProxyLogin |
Ottiene o imposta il nome dell'account di accesso utilizzato con la sincronizzazione Web durante la connessione al server Web tramite un server proxy Internet. |
InternetProxyPassword |
Imposta la password per l'accesso utilizzata con la sincronizzazione Web durante la connessione al server Web tramite un server proxy Internet. |
InternetProxyServer |
Ottiene o imposta il nome del server proxy Internet utilizzato con la sincronizzazione Web durante la connessione al server Web. |
InternetSecurityMode |
Ottiene o imposta il metodo di autenticazione HTTP utilizzato per la connessione al server Web durante la sincronizzazione Web. |
InternetTimeout |
Ottiene o imposta il timeout HTTP durante la connessione al server Web. |
InternetUrl |
Ottiene o imposta l'URL del servizio Web configurato per la sincronizzazione Web. |
LastUpdatedTime |
Ottiene il timestamp dell'ultima volta in cui la sottoscrizione è stata sincronizzata dall'agente di replica. |
LoginTimeout |
Ottiene o imposta il numero massimo di secondi di attesa per stabilire le connessioni. |
MetadataRetentionCleanup |
Ottiene o imposta un valore che indica se effettuare la pulizia dei metadati. |
Output |
Ottiene o imposta il file di output dell'agente. |
OutputMessageFile |
Ottiene o imposta il file di messaggi di input. |
OutputVerboseLevel |
Ottiene o imposta il livello di dettaglio delle informazioni scritte nel file di output dell'agente. |
ProfileName |
Ottiene o imposta il nome del profilo utilizzato dall'agente. |
Publication |
Ottiene o imposta il nome della pubblicazione. |
Publisher |
Ottiene o imposta il nome dell'istanza di Microsoft SQL Server che rappresenta il server di pubblicazione per la sottoscrizione. |
PublisherAddress |
Ottiene o imposta l'indirizzo di rete utilizzato per connettersi al server di pubblicazione quando viene specificata la proprietà PublisherNetwork. |
PublisherChanges |
Ottiene il numero complessivo di modifiche del server di pubblicazione applicate al Sottoscrittore durante l'ultima sincronizzazione. |
PublisherConflicts |
Ottiene il numero complessivo di conflitti che si sono verificati in relazione al server di pubblicazione durante l'ultima sincronizzazione. |
PublisherDatabase |
Ottiene o imposta il nome del database di pubblicazione. |
PublisherEncryptedPassword |
Ottiene o imposta la password crittografata del server di pubblicazione. |
PublisherFailoverPartner |
Ottiene o imposta l'istanza del partner di failover di SQL Server che partecipa a una sessione di mirroring del database con il database di pubblicazione. |
PublisherLogin |
Ottiene o imposta il nome di accesso utilizzato per la connessione al server di pubblicazione usando SQL Server Autenticazione. |
PublisherNetwork |
Ottiene o imposta la libreria di rete client utilizzata durante la connessione al server di pubblicazione. |
PublisherPassword |
Imposta la password utilizzata durante la connessione al server di pubblicazione usando SQL Server Autenticazione. |
PublisherSecurityMode |
Ottiene o imposta la modalità di sicurezza utilizzata durante la connessione al server di pubblicazione. |
QueryTimeout |
Ottiene o imposta il numero di secondi consentiti per terminare le query interne. |
SecureDistributorEncryptedPassword |
Ottiene o imposta la password crittografata di protezione del server di distribuzione. |
SecurePublisherEncryptedPassword |
Ottiene o imposta la password crittografata di protezione del server di pubblicazione. |
SecureSubscriberEncryptedPassword |
Ottiene o imposta la password crittografata di protezione del Sottoscrittore. |
Subscriber |
Ottiene o imposta il nome dell'istanza di Microsoft SQL Server che rappresenta il Sottoscrittore. |
SubscriberChanges |
Ottiene il numero complessivo di modifiche del Sottoscrittore applicate al server di pubblicazione durante l'ultima sincronizzazione. |
SubscriberConflicts |
Ottiene il numero complessivo di conflitti che si sono verificati in relazione al server di pubblicazione durante l'ultima sincronizzazione. |
SubscriberDatabase |
Ottiene o imposta il nome del database di sottoscrizione. |
SubscriberDatabasePath |
Ottiene o imposta il percorso del database Sottoscrittore. |
SubscriberDataSourceType |
Ottiene o imposta il tipo di origine dati utilizzato come Sottoscrittore. |
SubscriberEncryptedPassword |
Ottiene o imposta la password crittografata del Sottoscrittore. |
SubscriberLogin |
Ottiene o imposta il nome di accesso usato durante la connessione al Sottoscrittore usando SQL Server Autenticazione. |
SubscriberPassword |
Imposta la password usata durante la connessione al Sottoscrittore usando SQL Server Autenticazione. |
SubscriberSecurityMode |
Ottiene o imposta la modalità di sicurezza utilizzata durante la connessione al Sottoscrittore. |
SubscriptionType |
Ottiene o imposta un valore che indica se la sottoscrizione è di tipo push o pull. |
SyncToAlternate |
Ottiene o imposta un valore che indica se la sincronizzazione riguarda un partner di sincronizzazione alternativo. |
UploadGenerationsPerBatch |
Ottiene o imposta il numero di generazioni da elaborare in un singolo batch durante il caricamento delle modifiche dal Sottoscrittore al server di pubblicazione. Una generazione è definita come un gruppo logico di modifiche per articolo. |
UseInteractiveResolver |
Ottiene o imposta un valore che indica se il sistema di risoluzione interattivo viene utilizzato durante la riconciliazione. |
UseWebSynchronization |
Ottiene o imposta un valore che indica se viene utilizzata la sincronizzazione Web. |
Validate |
Ottiene o imposta un valore che indica se la convalida dei dati viene eseguita sui dati del Sottoscrittore alla fine della sincronizzazione. |
WorkingDirectory |
Ottiene o imposta la directory di lavoro dalla quale viene eseguito l'accesso ai file di snapshot quando viene utilizzato il protocollo FTP. |
Metodi
Abort() |
Interrompe la sincronizzazione. |
ClearAllTraceFlags() |
Cancella tutti i flag di traccia utilizzati dall'agente di sincronizzazione. |
ClearTraceFlag(Int32) |
Cancella un flag di traccia. |
Dispose() |
Rilascia le risorse non gestite utilizzate dall'oggetto MergeSynchronizationAgent. |
Dispose(Boolean) |
Rilascia le risorse non gestite usate dalla MergeSynchronizationAgent classe e facoltativamente rilascia le risorse gestite. |
EnableTraceFlag(Int32) |
Abilita la traccia del flag. |
Finalize() |
Completa l'agente. |
IsSnapshotRequired() |
Si connette al server di pubblicazione o di distribuzione e al Sottoscrittore per determinare se verrà applicato un nuovo snapshot durante la sincronizzazione successiva dell'agente. |
ProcessMessagesAtPublisher() |
Elabora i messaggi al server di pubblicazione. |
ProcessMessagesAtSubscriber() |
Elabora i messaggi al Sottoscrittore. |
Synchronize() |
Avvia l'agente di merge per sincronizzare la sottoscrizione. |
Eventi
ComStatus |
Si verifica quando l'agente di merge restituisce informazioni sullo stato Com della sincronizzazione. |
Status |
Si verifica quando l'agente di merge restituisce informazioni sullo stato della sincronizzazione. |
Si applica a
Thread safety
I membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.