Некоторые таблицы используются для хранилища, другие используются для регистрации (таблицы *_log
). Для работы QuickFIX/J требуется хранилище. (он отслеживает состояние сеанса и поддерживает повторную отправку сообщений), тогда как журнал не является обязательным.
sessions
Эта таблица отслеживает активные сеансы FIX. Сеансы имеют составной ключ из восьми значений, показанных в объявлении primary key
ниже.
creation_time
используется для определения того, к какому сеансу это относится.
Столбцы *_seqnum
отслеживают текущие порядковые номера для сеанса и используются для надежности вместе с запросами на повторную отправку.
create table sessions (
beginstring char(8) not null,
sendercompid varchar(64) not null,
sendersubid varchar(64) not null,
senderlocid varchar(64) not null,
targetcompid varchar(64) not null,
targetsubid varchar(64) not null,
targetlocid varchar(64) not null,
session_qualifier varchar(64) not null,
creation_time timestamp not null,
incoming_seqnum integer not null,
outgoing_seqnum integer not null,
primary key (beginstring, sendercompid, sendersubid, senderlocid,
targetcompid, targetsubid, targetlocid, session_qualifier)
);
messages
Эта таблица обеспечивает постоянное хранилище сообщений FIX, отправленных во время активного сеанса. Если сторона, с которой осуществляется связь, требует повторной отправки сообщений, QuickFIX/J будет использовать эту таблицу для определения содержания сообщений.
В начале каждого сеанса сообщения для session_qualifier
удаляются. Таким образом, эта таблица не будет расти бесконечно, и верхняя граница ее размера зависит от того, сколько сообщений может быть отправлено во время сеанса.
create table messages (
beginstring char(8) not null,
sendercompid varchar(64) not null,
sendersubid varchar(64) not null,
senderlocid varchar(64) not null,
targetcompid varchar(64) not null,
targetsubid varchar(64) not null,
targetlocid varchar(64) not null,
session_qualifier varchar(64) not null,
msgseqnum integer not null,
message text not null,
primary key (beginstring, sendercompid, sendersubid, senderlocid,
targetcompid, targetsubid, targetlocid, session_qualifier,
msgseqnum)
);
messages_log
QuickFIX/J может регистрировать все входящие/исходящие сообщения в базу данных. Таблица доступна только для записи с точки зрения библиотеки, поэтому вам решать, хотите ли вы использовать эту таблицу или нет.
В конфигурации для журналов входящих и исходящих сообщений могут быть указаны разные таблицы. По умолчанию все сообщения записываются в одну таблицу.
create sequence messages_log_sequence;
create table messages_log (
id integer default nextval('messages_log_sequence'),
time timestamp not null,
beginstring char(8) not null,
sendercompid varchar(64) not null,
sendersubid varchar(64) not null,
senderlocid varchar(64) not null,
targetcompid varchar(64) not null,
targetsubid varchar(64) not null,
targetlocid varchar(64) not null,
session_qualifier varchar(64),
text text not null,
primary key (id)
);
event_log
В эту таблицу записывается журнал событий. Примеры включают:
Расписание сессии FIX.4.2:FOO->BAR ежедневно, 07:00:00-UTC - 21:00:00-UTC
Созданный сеанс: FIX.4.2:FOO->BAR
Инициированный запрос на вход
Получен вход
create sequence event_log_sequence;
create table event_log (
id integer default nextval('event_log_sequence'),
time timestamp not null,
beginstring char(8) not null,
sendercompid varchar(64) not null,
sendersubid varchar(64) not null,
senderlocid varchar(64) not null,
targetcompid varchar(64) not null,
targetsubid varchar(64) not null,
targetlocid varchar(64) not null,
session_qualifier varchar(64),
text text not null,
primary key (id)
);
Как указывает @DumbCoder, имена таблиц можно настроить с помощью config.
person
Drew Noakes
schedule
24.02.2014