La tabla de heartbeat proporciona un método para saber si los cambios están siendo replicados correctamente en un entorno de streams. Esta tabla almacena fecha y hora, y debe ser la misma en ambas bases de datos (la que propaga y la que recibe los archiveres y aplica), y además deberia corresponder con la ultima hora en punto ya que hay un job que refresca esta tabla cada hora con la hora en punto.

Este test lanza una query contra cada uno de los pares configurados y verifica que la fecha sea igual en ambos lados para el nombre de la instancia definido. Es importante ver que el nombre de la instancia debe ser el mismo tanto para la base de datos que propaga como para la que aplica. Esta query de test, por poner un ejemplo, en entorno de desarrollo (DEV) sería:

select to_char(heart_beat_time,’dd/mm/yyyy hh24:mi’) from
strmadmin.streams_heart_beat where INSTANCE_NAME=’DEV’;

Para monitorizar que esto funciona tengo este test. Editamos el fichero de commands.cfg añadiendo:

define command{
command_name    check_oracle_streams_heartbeat
command_line    $USER1$/check_oracle_streams_heartbeat.sh $ARG1$ $ARG2$
$ARG3$ $ARG4$ $ARG5$ $ARG6$
}

Y la llamada del test con:

check_command                   check_oracle_streams_heartbeat!nagios/nagios_pass!”DEV_ORIG”!DEV!nagios/nagios!”DEV_DEST”!DEV