Синхронизация:Отправка sql-скриптов на выполнение через G$TASKS по синхронизации

Материал из wiki.standart-n.ru
Перейти к: навигация, поиск

Используемые сокращения

ГБ - Глобальная база
КБ - Клиентская база
Служебная таблица G$TASKS заполняется только в ГБ.

Структура G$TASKS.

ID – Ключ таблицы
PROFILE_ID – Для какого профиля предназначена задача
TASK_TYPE – Тип скрипта. 0: SQL-скрипт 1: SQL-запрос(возвращает данные). 
Планируются также типы -: обновиться -: послать метаданные -: запустить посланный файл. Но они еще не реализованы.
CAPTION – Название задачи.
DATA – Само содержание скрипта. Которое должно выполниться на КБ.
INSERTDT – Дата вставки записи, заполняется автоматически
SENDDT – Дата отправки скрипта. Если NULL значит нужно отправить. Проставляется скриптами синхронизации.
ENDDT – Дата выполнения скрипта. Устанавливается скриптами синхронизации временем сервера в момент получения ответа от DtClient о том, что данный скрипт выполнен. 
ENDFLAG – Флаг окончания. 1- успешное выполение, -1 –выполнение закончилось с ошибками
ENDTEXT – Статистика выполнения скрипта у клиента. 
 Выполнено за (мс):500
 Buffers: 0
 Reads: 11
 Writes: 54
 SeqReads: 8840
 Fetches: 175854
 ReadIdx: 8877
 DeltaMem: 19368
 StartingMem: 90087816
ENDDATA – Не уверена, но скорее всего результат выполнения SQL-запроса, который возвращает данные.

Внимание!!!!

1. Если даже скрипт выполнился с ошибками, в любом случае в конце выполнения произойдет подтверждение транзакции (отката не будет!).
2. Перед тем как создавать задачу для множества профилей протестируйте скрипт на профиле, который не используется под реальные задачи.
3. Для удобства создания массовых рассылок скриптов используйте процедуру UTPR_MASTERDETAIL.