Show/Hide Toolbars

Справочник по интерфейсу администратора



Логирование при обмене данными на уровне SQL

Ссылки Назад Вверх Вперед E-mail

Обмен данными между двумя системами на уровне БД выполняется с помощью запуска хранимых процедур SQL. Запуск хранимых процедур выполняется либо по триггеру (при наступлении определенного события), либо по расписанию. При работе по расписанию администраторам важно контролировать, когда состоялся последний запуск хранимой процедуры и сколько записей было обработано. Это поможет им выявить ошибки - если запуск процедуры по каким-то причинам не произошел или если количество записей, которое было обработано, существенно отличается от среднестатистического.

Для логирования можно использовать специальную таблицу – журнал (лог) записей о событиях обмена, а также хранимую процедуру, которая будет формировать эти записи. По каждому вызову процедуры обмена записываются: название и ID процедуры обмена, время начала и окончания выполнения, количество добавленных и обновленных записей.

sql_log_table

Таблица с журналом обмена данными.

 

В каждой процедуре обмена запись в журнал вызывается дважды – в начале и в конце:

ALTER PROCEDURE [dbo].[cm_int_syncCat_city]
AS
BEGIN
 SET NOCOUNT ON;
 DECLARE
         @procName VARCHAR(50),
         @insertedCount INT = 0,
         @updatedCount INT = 0;
 
 SET @procName = OBJECT_NAME(@@PROCID);

 EXEC cm_int_spStatEvent @sp = @procName, @event = 'start';
 ...

 ...
 EXEC cm_int_spStatEvent @sp = @procName, @event = 'finish', @insCount = @insertedCount, @updCount = @updatedCount, @printStat = 1;

END;

Данные из таблицы - журнала обмена – могут выводиться на портал администратора в портальном блоке "Таблица".

sql_log_portal

Журнал обмена на портале администратора.