Cómo supervisar la replicación mediante programación (programación con RMO)
El Monitor de replicación es una herramienta gráfica que permite supervisar topología de replicación. Puede tener acceso a los mismos datos de supervisión mediante objetos de administración de replicación. Las clases RMO le permiten programar las tareas siguientes:
Supervisar los resultados de las cinco últimas ejecuciones del Agente de mezcla en el suscriptor.
Supervisar el estado de los publicadores, publicaciones y suscripciones.
Supervisar comandos transaccionales a la espera de ser aplicados en uno o más suscriptores.
Definir métricas de umbral que determinen cuándo una publicación requiere intervención.
Supervisar el estado de testigos de seguimiento. Para obtener más información, vea Cómo medir la latencia y validar conexiones para la replicación transaccional (programación con RMO).
Para supervisar una suscripción a una publicación de mezcla en el suscriptor
Cree una conexión al suscriptor mediante la clase ServerConnection.
Cree una instancia de la clase MergeSubscriberMonitor, y establezca las propiedades Publisher, Publication, PublisherDB, SubscriberDB de la suscripción y la propiedad ConnectionContext en la conexión ServerConnection creada en el paso 1.
Llame a alguno de los métodos siguientes para devolver información sobre sesiones de Agente de mezcla de esta suscripción:
GetSessionsSummary()()()(): devuelve una matriz de objetos MergeSessionSummary con información de hasta las últimas cinco sesiones del Agente de mezcla. Anote el valor SessionID()()()() de cualquier sesión que le interese.
GetSessionsSummary(Int32): devuelve una matriz de los objetos MergeSessionSummary con información sobre las sesiones de Agente de mezcla que se han producido durante el pasado número de horas pasadas como el parámetro hours (hasta las últimas cinco sesiones). Anote el valor SessionID()()()() de cualquier sesión que le interese.
GetLastSessionSummary: devuelve un objeto MergeSessionSummary con información sobre la última sesión de Agente de mezcla. Anote el valor SessionID()()()() de esta sesión.
GetSessionsSummaryDataSet: devuelve un objeto DataSet con información sobre hasta las últimas cinco sesiones del Agente de mezcla, una en cada fila. Anote el valor de la columna Session_id de las sesiones que le interesen.
GetLastSessionSummaryDataRow: devuelve un objeto DataRow con información sobre la última sesión del Agente de mezcla. Anote el valor de la columna Session_id de esta sesión.
(Opcional) Llame a RefreshSessionSummary(MergeSessionSummary%) para actualizar los datos del objeto MergeSessionSummary pasados como mss, o llame a RefreshSessionSummary(DataRow%) para actualizar los datos del objeto DataRow pasado como drRefresh.
Con el Id. de sesión obtenido en el paso 3, llame a uno de los métodos siguientes para devolver información sobre los detalles de una sesión determinada:
GetSessionDetails: devuelve una matriz de objetos MergeSessionDetail para el sessionID proporcionado.
GetSessionDetailsDataSet: devuelve un objeto DataSet con información del sessionID especificado.
Para supervisar las propiedades de replicación de todas las publicaciones en un distribuidor
Cree una conexión al distribuidor mediante la clase ServerConnection.
Cree una instancia de la clase ReplicationMonitor.
Establezca la propiedad ConnectionContext de la ServerConnection creada en el paso 1.
Llame al método LoadProperties para obtener las propiedades del objeto.
Ejecute uno o más de los métodos siguientes para devolver información de replicación para todos los publicadores que utilizan este distribuidor.
EnumDistributionAgents: devuelve un objeto DataSet que contiene información sobre todos los agentes de distribución en este distribuidor.
EnumErrorRecords: devuelve un objeto DataSet que contiene información sobre los errores almacenados en el distribuidor.
EnumLogReaderAgents: devuelve un objeto DataSet que contiene información sobre todos los agentes de registro del LOG en este distribuidor.
EnumMergeAgents: devuelve un objeto DataSet que contiene información sobre todos los agentes de mezcla en el distribuidor.
EnumMiscellaneousAgents: devuelve un objeto DataSet que contiene información sobre todo los agentes de replicación en el distribuidor.
EnumPublishers: devuelve un objeto DataSet que contiene información sobre todos los publicadores en el distribuidor.
EnumPublishers2: devuelve un objeto DataSet que devuelve los publicadores que utilizan este distribuidor.
EnumQueueReaderAgents: devuelve un objeto DataSet que contiene información sobre todos los agentes de registro del LOG en el distribuidor.
EnumQueueReaderAgentSessionDetails: devuelve un objeto DataSet que contiene los detalles sobre el Agente de lectura de cola especificado y la sesión.
EnumQueueReaderAgentSessions: devuelve un objeto DataSet que contiene información de sesión sobre el Agente de lectura de cola especificado y la sesión.
EnumSnapshotAgents: devuelve un objeto DataSet que contiene información sobre todos los agentes de instantáneas en el distribuidor.
Para supervisar las propiedades de publicación de un publicador concreto en el distribuidor
Cree una conexión al distribuidor mediante la clase ServerConnection.
Obtenga un objeto PublisherMonitor de alguna de estas maneras.
Cree una instancia de la clase PublisherMonitor. Establezca las propiedades Name del publicador, y establezca la propiedad ConnectionContext en la ServerConnection creada en el paso 1. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que el nombre del publicador se definió incorrectamente o que la publicación no existe.
De PublisherMonitorCollection al que obtuvo acceso por medio de la propiedad PublisherMonitors de un objeto ReplicationMonitor existente.
Ejecute uno o más de los métodos siguientes para devolver información de replicación de todos los publicadores que pertenecen este publicador.
EnumDistributionAgentSessionDetails: devuelve un objeto DataSet que contiene los detalles sobre el Agente de distribución especificado y la sesión.
EnumDistributionAgentSessions: devuelve un objeto DataSet que contiene información de sesión sobre el Agente de distribución especificado.
EnumErrorRecords: devuelve un objeto DataSet que contiene información de registro de error sobre un error especificado.
EnumLogReaderAgentSessionDetails: devuelve un objeto DataSet que contiene los detalles sobre el Agente de registro del LOG especificado y la sesión.
EnumLogReaderAgentSessions: devuelve un objeto DataSet que contiene información de sesión de un Agente de registro del LOG especificado.
EnumMergeAgentSessionDetails: devuelve un objeto DataSet que contiene los detalles sobre el Agente de mezcla especificado y la sesión.
EnumMergeAgentSessionDetails2: devuelve un objeto DataSet que contiene los detalles adicionales sobre el Agente de mezcla especificado y la sesión.
EnumMergeAgentSessions: devuelve un objeto DataSet que contiene información del Agente de mezcla especificado.
EnumMergeAgentSessions2: devuelve un objeto DataSet que contiene información de sesión adicional sobre el Agente de mezcla especificado.
EnumPublications: devuelve un objeto DataSet que contiene información sobre todas las publicaciones en el distribuidor.
EnumPublications2: devuelve un objeto DataSet que contiene información adicional sobre todas las publicaciones en el distribuidor.
EnumSnapshotAgentSessionDetails: devuelve un objeto DataSet que contiene los detalles sobre el Agente de instantánea especificado y la sesión.
EnumSnapshotAgentSessions: devuelve un objeto DataSet que contiene información de sesión de un Agente de instantánea especificado.
EnumSubscriptions: devuelve un objeto DataSet que contiene información sobre todas las suscripciones a publicaciones en el distribuidor.
Para supervisar las propiedades de una publicación concreta en el distribuidor
Cree una conexión al distribuidor mediante la clase ServerConnection.
Obtenga un objeto PublicationMonitor de alguna de estas maneras.
Cree una instancia de la clase PublicationMonitor. Establezca las propiedades DistributionDBName, PublisherName, PublicationDBName y Name de la publicación, y establezca la propiedad ConnectionContext de la ServerConnection creada en el paso 1. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que las propiedades de la publicación de definieron incorrectamente o que la publicación no existe.
De PublicationMonitorCollection al que obtuvo acceso por medio de la propiedad PublicationMonitors de un objeto PublisherMonitor existente.
Ejecute uno o más de los métodos siguientes para devolver información sobre esta publicación.
EnumErrorRecords: devuelve un objeto DataSet que contiene registros de error sobre un error especificado.
EnumLogReaderAgent: devuelve un objeto DataSet que contiene información sobre el Agente de registro del LOG de esta publicación.
EnumMonitorThresholds: devuelve un objeto DataSet que contiene información sobre el conjunto de umbrales de advertencia del monitor para esta publicación.
EnumQueueReaderAgent: devuelve un objeto DataSet que contiene información sobre el Agente de lectura de cola utilizado por esta publicación.
EnumSnapshotAgent: devuelve un objeto DataSet que contiene información sobre el Agente de instantáneas de esta publicación.
EnumSubscriptions: devuelve un objeto DataSet que contiene información sobre las suscripciones a esta publicación.
EnumSubscriptions2: devuelve un objeto DataSet que contiene información adicional sobre suscripciones a esta publicación basándose en el SubscriptionResultOption proporcionado.
EnumTracerTokenHistory: devuelve un objeto DataSet que contiene información de latencia del testigo de seguimiento especificado.
EnumTracerTokens: devuelve un objeto DataSet que contiene información sobre todos los testigos de seguimiento insertados en esta publicación.
Para supervisar comandos transaccionales a la espera de ser aplicados en el suscriptor.
Cree una conexión al distribuidor mediante la clase ServerConnection.
Obtenga un objeto PublicationMonitor de alguna de estas maneras.
Cree una instancia de la clase PublicationMonitor. Establezca las propiedades DistributionDBName, PublisherName, PublicationDBName y Name de la publicación, y establezca la propiedad ConnectionContext de la ServerConnection creada en el paso 1. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que las propiedades de la publicación de definieron incorrectamente o que la publicación no existe.
De PublicationMonitorCollection al que obtuvo acceso por medio de la propiedad PublicationMonitors de un objeto PublisherMonitor existente.
Ejecute el método TransPendingCommandInfo, que devuelve un objeto PendingCommandInfo.
Utilice las propiedades de este objeto PendingCommandInfo para determinar el número estimado de comandos pendientes y el tiempo que tardará en completarse la entrega de estos comandos.
Para establecer los umbrales de advertencias del monitor de una
Cree una conexión al distribuidor mediante la clase ServerConnection.
Obtenga un objeto PublicationMonitor de alguna de estas maneras.
Cree una instancia de la clase PublicationMonitor. Establezca las propiedades DistributionDBName, PublisherName, PublicationDBName y Name de la publicación, y establezca la propiedad ConnectionContext de la ServerConnection creada en el paso 1. Llame al método LoadProperties para obtener las propiedades del objeto. Si este método devuelve false, significa que las propiedades de la publicación de definieron incorrectamente o que la publicación no existe.
De PublicationMonitorCollection al que obtuvo acceso por medio de la propiedad PublicationMonitors de un objeto PublisherMonitor existente.
Ejecute el método EnumMonitorThresholds. Anote los valores de umbral actuales del ArrayList devuelto de los objetos MonitorThreshold.
Ejecute el método ChangeMonitorThreshold. Pase los siguientes parámetros:
metricID: un valor Int32 que representa la métrica de umbral de supervisión en la tabla siguiente:
Valor
Descripción
1
expiration: supervisa la expiración inminente de suscripciones a publicaciones transaccionales.
2
latency: supervisa el rendimiento de suscripciones a publicaciones transaccionales.
4
mergeexpiration: supervisa la caducidad inminente de suscripciones a publicaciones de mezcla.
5
mergeslowrunduration: supervisa la duración de sincronizaciones de mezcla en conexiones de poco ancho de banda (acceso telefónico).
6
mergefastrunduration: supervisa la duración de sincronizaciones de mezcla en conexiones de gran ancho de banda (LAN).
7
mergefastrunspeed: supervisa la velocidad de sincronización de sincronizaciones de mezcla en conexiones de gran ancho de banda (LAN).
8
mergeslowrunspeed: supervisa la velocidad de sincronización de sincronizaciones de mezcla en conexiones de poco ancho de banda (acceso telefónico).
enable: el valor Boolean que indica si la métrica está habilitada para la publicación.
thresholdValue: el valor entero que establece el umbral.
shouldAlert: el entero que indica si este umbral debería generar una alerta.