Поскольку мониторинг осуществляется у дистрибьютора (к которому у вас нет доступа), вы можете попробовать обходной путь.Первая предполагает, что у вас есть права DDL на реплицированную базу данных.
Добавьте триггер к одной из реплицированных таблиц, например последнюю, заканчивающую обновления, которая, вероятно, является самой большой.Это повлечет за собой накладные расходы, поэтому держите курок простым.Разработайте триггер для обновления метки времени в простой таблице и используйте задание агента SQL для мониторинга этой таблицы, а когда метка времени устарела примерно на 1 час, затем запускайте другой процесс или отправляйте уведомление.
create table Repl_Monitor (
LastUpdate datetime not null
);
GO
insert into Repl_Monitor(LastUpdate)
select GETDATE(); --seed record
GO
create trigger trg_Repl_Monitor
on dbo.[<replicated table to be montiored>]
for update, insert, delete
as
update Repl_Monitor
set LastUpdate = GETDATE()
GO
Если ежедневный толчок состоит из множества вставленных / удаленных записей, другой обходной путь будет заключаться в том, чтобы отслеживать "строки" в sysindexes каждую минуту, а затем уведомлять, как только количество "строк" перестает колебаться по истечении определенного периода времени.
select top 1 rows from sysindexes
where id = OBJECT_ID('tableName')
and rows > 0
Это дает преимущество незначительных накладных расходов, но не так точно, как триггер.
Приветствия!