MergeSynchronizationAgent Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona la funcionalidad del Agente de mezcla de replicación.
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
- Herencia
-
MergeSynchronizationAgent
- Atributos
- Implementaciones
Ejemplos
En el ejemplo siguiente, se llama al Synchronize método en la instancia de la clase a la MergeSynchronizationAgent que se tiene acceso desde la SynchronizationAgent propiedad para sincronizar la suscripción de inserción.
// 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
En el ejemplo siguiente, se usa una instancia de la MergeSynchronizationAgent clase para sincronizar una suscripción de mezcla. Dado que la suscripción de extracción se creó mediante un valor de false
para CreateSyncAgentByDefault, se deben proporcionar propiedades adicionales.
// 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
Comentarios
La MergeSynchronizationAgent clase admite la capacidad de realizar las siguientes tareas de replicación:
Sincronizar suscripciones.
Especifique si solo se ejecuta la fase de carga, solo la fase de descarga o ambas fases durante la sincronización.
Compruebe que una suscripción tiene los datos esperados.
Especifique una carpeta de instantáneas diferente, a partir de la cual se puede aplicar la instantánea inicial de una suscripción.
Constructores
MergeSynchronizationAgent() |
Crea una instancia de la clase MergeSynchronizationAgent. |
Propiedades
AlternateSynchronizationPartnerCollection |
Obtiene los socios de sincronización alternativos para una suscripción. |
AltSnapshotFolder |
Obtiene o establece la carpeta de instantáneas alternativa para la suscripción. |
ComErrorCollection |
Obtiene una colección de errores que genera el agente de replicación. |
Distributor |
Obtiene o establece el nombre de la instancia de Microsoft SQL Server que actúa como distribuidor de la suscripción. |
DistributorAddress |
Obtiene o establece la dirección de red que se utiliza para la conexión al distribuidor cuando se especifica la propiedad DistributorNetwork. |
DistributorEncryptedPassword |
Obtiene o establece la contraseña cifrada del distribuidor. |
DistributorLogin |
Obtiene o establece el nombre de inicio de sesión que se usa al conectarse al distribuidor mediante SQL Server autenticación. |
DistributorNetwork |
Obtiene o establece la biblioteca de red de clientes que se usa para la conexión al distribuidor. |
DistributorPassword |
Establece la contraseña que se usa al conectarse al distribuidor mediante SQL Server autenticación. |
DistributorSecurityMode |
Obtiene o establece el modo de seguridad que se utiliza para la conexión al distribuidor. |
DownloadGenerationsPerBatch |
Obtiene o establece el número de generaciones que se va a procesar en un lote único mientras se descargan los cambios desde el publicador al suscriptor. Una generación se define como un grupo lógico de cambios por artículo. |
DynamicSnapshotLocation |
Obtiene o establece la ubicación de la instantánea con particiones para este suscriptor. |
ExchangeType |
Obtiene o establece cómo se intercambian los datos durante la sincronización. |
FileTransferType |
Obtiene o establece cómo se transfieren al suscriptor los archivos de la instantánea inicial. |
HostName |
Obtiene o establece el valor usado por el Agente de mezcla cuando evalúa un filtro con parámetros que usa la función HOST_NAME. |
InputMessageFile |
Obtiene o establece el archivo de mensajes de entrada. |
InternetLogin |
Obtiene o establece el nombre de inicio de sesión que se usa con la sincronización web para la conexión al publicador utilizando la autenticación de Internet. |
InternetPassword |
Establece la contraseña de la propiedad InternetLogin que se usa con la sincronización web para la conexión al publicador utilizando la autenticación de Internet. |
InternetProxyLogin |
Obtiene o establece el nombre de inicio de sesión que se usa con la sincronización web para la conexión al servidor web mediante un servidor proxy de Internet. |
InternetProxyPassword |
Establece la contraseña de inicio de sesión que se usa con la sincronización web para la conexión al servidor web mediante un servidor proxy de Internet. |
InternetProxyServer |
Obtiene o establece el nombre del servidor proxy de Internet que se usa con la sincronización web para la conexión al servidor web. |
InternetSecurityMode |
Obtiene o establece el método de autenticación de HTTP usado para la conexión al servidor web durante la sincronización web. |
InternetTimeout |
Obtiene o establece el tiempo de espera de HTTP para la conexión al servidor web. |
InternetUrl |
Obtiene o establece la dirección URL del servicio web que se configura para la sincronización web. |
LastUpdatedTime |
Obtiene la marca de tiempo de la última vez que el agente de replicación sincronizó la suscripción. |
LoginTimeout |
Obtiene o establece el número máximo de segundos de espera para que se establezcan las conexiones. |
MetadataRetentionCleanup |
Obtiene o establece si limpian los metadatos. |
Output |
Obtiene o establece el archivo de salida del agente. |
OutputMessageFile |
Obtiene o establece el archivo de mensajes de entrada. |
OutputVerboseLevel |
Obtiene o establece el nivel de detalle de información que se escribe en el archivo de salida del agente. |
ProfileName |
Obtiene o establece el nombre del perfil usado por el agente. |
Publication |
Obtiene o establece el nombre de la publicación. |
Publisher |
Obtiene o establece el nombre de la instancia de Microsoft SQL Server que actúa como publicador de la suscripción. |
PublisherAddress |
Obtiene o establece la dirección de red que se usa para la conexión al publicador cuando se especifica la propiedad PublisherNetwork. |
PublisherChanges |
Obtiene el número total de cambios del publicador que se aplicaron en el suscriptor durante la última sincronización. |
PublisherConflicts |
Obtiene el número total de conflictos que produjeron en el publicador durante la última sincronización. |
PublisherDatabase |
Obtiene o establece el nombre de la base de datos de publicación. |
PublisherEncryptedPassword |
Obtiene o establece la contraseña cifrada del publicador. |
PublisherFailoverPartner |
Obtiene o establece la instancia de asociado de conmutación por error de SQL Server que participa en una sesión de creación de reflejo de la base de datos con la base de datos de publicación. |
PublisherLogin |
Obtiene o establece el nombre de inicio de sesión que se usa al conectarse al publicador mediante SQL Server Autenticación. |
PublisherNetwork |
Obtiene o establece la biblioteca de red de clientes que se usa para la conexión al publicador. |
PublisherPassword |
Establece la contraseña que se usa al conectarse al publicador mediante la autenticación SQL Server. |
PublisherSecurityMode |
Obtiene o establece el modo de seguridad que se utiliza para la conexión al publicador. |
QueryTimeout |
Obtiene o establece el número de segundos que se conceden a las consultas internas para finalizar. |
SecureDistributorEncryptedPassword |
Obtiene o establece la contraseña cifrada del distribuidor seguro. |
SecurePublisherEncryptedPassword |
Obtiene o establece la contraseña cifrada segura del publicador. |
SecureSubscriberEncryptedPassword |
Obtiene o establece la contraseña cifrada segura del suscriptor. |
Subscriber |
Obtiene o establece el nombre de la instancia de Microsoft SQL Server que es el suscriptor. |
SubscriberChanges |
Obtiene el número total de cambios del suscriptor que se aplicaron en el publicador durante la última sincronización. |
SubscriberConflicts |
Obtiene el número total de conflictos que produjeron en el publicador durante la última sincronización. |
SubscriberDatabase |
Obtiene o establece el nombre de la base de datos de suscripciones. |
SubscriberDatabasePath |
Obtiene o establece la ruta de acceso de la base de datos del suscriptor. |
SubscriberDataSourceType |
Obtiene o establece el tipo de origen de datos que se utiliza como suscriptor. |
SubscriberEncryptedPassword |
Obtiene o establece la contraseña cifrada del suscriptor. |
SubscriberLogin |
Obtiene o establece el nombre de inicio de sesión que se usa al conectarse al suscriptor mediante SQL Server Autenticación. |
SubscriberPassword |
Establece la contraseña que se usa al conectarse al suscriptor mediante la autenticación SQL Server. |
SubscriberSecurityMode |
Obtiene o establece el modo de seguridad que se utiliza para la conexión al suscriptor. |
SubscriptionType |
Obtiene o establece si la suscripción es de inserción o de extracción. |
SyncToAlternate |
Obtiene o establece si la sincronización se realiza con un asociado de sincronización alternativo. |
UploadGenerationsPerBatch |
Obtiene o establece el número de generaciones que se va a procesar en un lote único mientras se cargan los cambios desde el suscriptor al publicador. Una generación se define como un grupo lógico de cambios por artículo. |
UseInteractiveResolver |
Obtiene o establece un valor que indica si se usa el solucionador interactivo durante la reconciliación. |
UseWebSynchronization |
Obtiene o establece si se utiliza la sincronización web. |
Validate |
Obtiene o establece si se realiza la validación de los datos del suscriptor al final de la sincronización. |
WorkingDirectory |
Obtiene o establece el directorio de trabajo desde el cual se obtiene acceso a los archivos de instantánea cuando se utiliza el protocolo FTP. |
Métodos
Abort() |
Anula la sincronización. |
ClearAllTraceFlags() |
Borra todas las marcas de seguimiento usadas por el agente de sincronización. |
ClearTraceFlag(Int32) |
Borra una marca de seguimiento. |
Dispose() |
Libera los recursos no administrados usados por MergeSynchronizationAgent. |
Dispose(Boolean) |
Libera los recursos no administrados usados por MergeSynchronizationAgent la clase y, opcionalmente, libera los recursos administrados. |
EnableTraceFlag(Int32) |
Habilita las marcas de seguimiento. |
Finalize() |
Finaliza el agente. |
IsSnapshotRequired() |
Conecta al publicador o el distribuidor y el suscriptor para determinar si se aplicará una instantánea nueva durante la próxima sincronización del agente. |
ProcessMessagesAtPublisher() |
Procesa los mensajes en el publicador. |
ProcessMessagesAtSubscriber() |
Procesa los mensajes en el suscriptor. |
Synchronize() |
Inicia el Agente de mezcla para sincronizar la suscripción. |
Eventos
ComStatus |
Ocurre cuando el Agente de mezcla devuelve la información de estado Com de la sincronización. |
Status |
Ocurre cuando el Agente de mezcla devuelve la información de estado de la sincronización. |
Se aplica a
Seguridad para subprocesos
Todos los miembros estáticos públicos (Shared de Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.