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

  1. Cree una conexión al suscriptor mediante la clase ServerConnection.

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

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

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

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

Para supervisar las propiedades de replicación de todas las publicaciones en un distribuidor

  1. Cree una conexión al distribuidor mediante la clase ServerConnection.

  2. Cree una instancia de la clase ReplicationMonitor.

  3. Establezca la propiedad ConnectionContext de la ServerConnection creada en el paso 1.

  4. Llame al método LoadProperties para obtener las propiedades del objeto.

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

Para supervisar las propiedades de publicación de un publicador concreto en el distribuidor

  1. Cree una conexión al distribuidor mediante la clase ServerConnection.

  2. Obtenga un objeto PublisherMonitor de alguna de estas maneras.

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

Para supervisar las propiedades de una publicación concreta en el distribuidor

  1. Cree una conexión al distribuidor mediante la clase ServerConnection.

  2. Obtenga un objeto PublicationMonitor de alguna de estas maneras.

  3. Ejecute uno o más de los métodos siguientes para devolver información sobre esta publicación.

Para supervisar comandos transaccionales a la espera de ser aplicados en el suscriptor.

  1. Cree una conexión al distribuidor mediante la clase ServerConnection.

  2. Obtenga un objeto PublicationMonitor de alguna de estas maneras.

  3. Ejecute el método TransPendingCommandInfo, que devuelve un objeto PendingCommandInfo.

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

  1. Cree una conexión al distribuidor mediante la clase ServerConnection.

  2. Obtenga un objeto PublicationMonitor de alguna de estas maneras.

  3. Ejecute el método EnumMonitorThresholds. Anote los valores de umbral actuales del ArrayList devuelto de los objetos MonitorThreshold.

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