Приемная очередь

Приемная очередь (таблица RECEIVING_QUEUE) используется для хранения принятых данных, которые пришли с передающего сервера. Эта таблица заполняется на приемнике данных. Каждая запись в таблице содержит информацию об одной операции с данными, плюс эти данные. Структура таблицы похожа на структуру DISPATCH_QUEUE:

ПолеТипОписание
OPER_DATE BYTE(6) Содержит дату операции. Первые 4 байта поля представляют собой количество секунд, прошедших с 1990 г, остальные 2 байта – 65536-е доли секунды. Эти значения хранятся в прямом формате: старшие байты содержат старшую часть слова
REPL_DATE BYTE(6) Содержит дату пересылки записи. Формат записи аналогичен OPER_DATE
EXTDATA SMALLINT Признак продолжения записи, если она не уместилась в 3400 байта поля DATA. Для первой части данных это поле заполнено нулем, для второй – единицей и т.д. Т.е., одна операция может описываться двумя и даже тремя записями в таблице DISPATCH_QUEUE, если реплицируемая таблица имеет записи большого размера
RESERVE SMALLINT Не используется
DBNODE CHAR(8) Имя БД, из которой получены данные
TRANSACT_ID BIGINT Номер транзакции, которой принадлежит эта операция.
TYP SMALLINT Тип операции:

1 – DELETE;

2 – INSERT;

3 – UPDATE;

4 – COMMIT;

7 – CREATE BLOB;

8 – INSERT BLOB;

9 – CLEAR BLOB;

10 – ROLLBACK

BLOBATR SMALLINT Используется для BLOB операций. Младший байт содержит номер атрибута в таблице, которому принадлежит BLOB, старший – тип BLOB
RETCODE_LIN INT Код завершения, который вернул ЛИНТЕР при выполнении этой операции
RETCODE_SYS INT Код системной ошибки, который вернул ЛИНТЕР при выполнении этой операции, заполняется, если RETCODE_LIN не равен 0
TABNUM_SRC INT Номер реплицируемой таблицы
ROWID_SRC INT Идентификатор строки в исходной таблице
LEN1 INT Длина первой части буфера данных (в поле DATA)
LEN2 INT Длина второй части буфера данных (в поле DATA)
DST_SERVER CHAR(8) Имя сервера назначения
SRC_SERVER CHAR(8) Имя сервера, с которого пришли данные
TABNAME_SRC CHAR(66) Имя таблицы, из которой пришли данные
USER_SRC CHAR(66) Имя владельца таблицы, из которой пришли данные
TABNAME_DEST CHAR(66) Имя таблицы БД приемника
USER_DEST CHAR(66) Имя владельца таблицы БД приемника
REPLICAT_NAME CHAR(66) Имя правила репликации, по которому пришла эта запись
DATA BYTE(3400) Буфер с данными. Условно разделен на две части с длинами len1 и len2.

Тип операции:

1 – DELETE. Первая часть содержит старую запись, которая удаляется. Вторая часть пуста;

2 – INSERT. Первая часть содержит новую запись, которая вставляется. Вторая часть пуста;

3 – UPDATE. Первая часть содержит старую запись, которая замещается. Вторая часть содержит новую запись, которая замещает старую;

4 – INSERT, CREATE BLOB. Первая часть содержит добавляемую часть BLOB. Вторая часть пуста;

5 – COMMIT, ROLLBACK. Первая и вторая части пусты