gpt4 book ai didi

quickfix - QuickFIX/J 的数据库表

转载 作者:行者123 更新时间:2023-12-01 23:09:32 29 4
gpt4 key购买 nike

QuickFIX/J 包含创建四个数据库表的 SQL 脚本:

  • session
  • 消息
  • messages_log
  • 事件日志

我找不到任何描述每个表格用途的文档。

它们有什么用,什么时候写入,它们中的任何一个是否无限增长,等等......

最佳答案

一些表用于存储,其他用于日志记录(*_log 表。)存储 是 QuickFIX/J 运行所必需的(它跟踪 session 状态并支持重新发送消息),而日志是可选的。


session

此表跟踪事件的 FIX session 。 session 具有下面 primary key 声明中显示的八个值的组合键。

creation_time 用于确定这适用于哪个 session 。

*_seqnum 列跟踪 session 的当前序列号,并与重新发送请求一起用于可靠性。

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)
);

消息

此表提供了在事件 session 期间发送的 FIX 消息的持久存储。如果被通信方要求重新发送消息,QuickFIX/J 将使用此表来确定消息的内容。

在每个 session 开始时,session_qualifier 的消息将被删除。因此,该表不会无限增长,其大小的上限取决于 session 期间可能发送的消息数。

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)
);

消息日志

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)
);

事件日志

事件日志被写入此表。示例包括:

Session FIX.4.2:FOO->BAR schedule is daily, 07:00:00-UTC - 21:00:00-UTC

Created session: FIX.4.2:FOO->BAR

Initiated logon request

Received logon

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 指出的那样,表名可以通过配置进行自定义。

关于quickfix - QuickFIX/J 的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21854637/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com