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

Приемная очередь (таблица 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. Первая и вторая части пусты