新一代交易系统行情网关用户手册

指南下载链接

新一代交易系统行情网关用户手册.pdf
802.0 KB

 指南正文内容

一、引言

1.1 目的

本文档描述了行情网关的安装、配置及使用方法。

1.2 释义和缩略语

无。

1.3 概述

本软件主要用于向投资者提供发布包括指数信息、行情快照、逐笔成交和委托、实时统计信息、实时公告等相关市场数据的服务。

二、系统安装与配置

2.1 系统安装

2.1.1 运行环境
2.1.2 安装系统
本软件是绿色软件,下载相应压缩包后解压到本地硬盘任意目录即可。
程序配置文件存放在安装目录的 cfg 子目录中,配置文件名为 config.xml。
2.1.3 安装 Ekey
对于网络版行情网关,如果用户选择使用EKey方式进行身份验证,则需要安装相关的EKey驱动程序,并参照《基本配置》章节对验证模式进行配置。
安装Ekey的具体步骤请参考深圳证券交易所网站“http://ca.szse.cn/”资料下载专区相关资料。
Linux系统下,建议将Ekey驱动文件复制为当前目录下libshuttle_p11v220.so.1.0.0,否则请参见2.2.1章节,将Ekey驱动文件的具体路径配置到ekey_driver_file配置项。
2.1.4 安装文件证书
如果用户选择使用文件证书进行身份验证,则只需要将深交所发布给用户的证书信息存放于 cfg 目录下,并参照《基本配置》章节对验证模式进行配置。

2.2 系统配置

注:本文档中的配置参数(如服务器地址和组播地址)皆为参考配置,具体配置时
应以深圳证券交易所公布的信息为准。
2.2.1 基本配置
<!-- 接入用户使用的协议类型(BINARY 或者 STEP). 每个行情网关,同一时间只能支持 STEP 或 BINARY 中的一种协议,不能同时既支持 STEP 协议又支持 BINARY 协议。但不同网关或主、备网关可以使用不同的协议。
-->
<protocol>STEP</protocol>
<!-- 网关 ID, 由深交所统一分配 -->
<id>__GWID__</id>
<!-- 网关类型(现场版 LIVE 或者 网络版 NETWORK),网络版有重传服务 -->
<type>NETWORK</type>
<!-- 加密后的“网关登录密码”,填写规则参见《新一代交易系统网关监控界面用户手册》密码管理章节 -->
<password>__PASSWORD__</password>
<!-- 环境号 -->
<env_id>1</env_id>
<!-- 静态交易参考信息存储路径,可选字段,Level1 卫星产品下有效 。如果路径设置到网关工作目录,则不可以与网关使用的目录重名(如 cfg、log 、persistenec 、file_dir等) -->
<file_path>绝对路径< /file_path >
<!-- 网关状态日志的打印间隔,单位秒 -->
<status_log_interval>180</status_log_interval>
<!-- 用户端下行缓冲区大小 -->
<user_send_queue_len>10000</user_send_queue_len>
<!-- SSL 相关配置 -->
<!-- 验证模式 0:TCP 1:SSL 不需要证书 2:SSL 使用文件证书 3:SSL 使用 Ekey-->
<!-- 如果启用了文件证书或者 Ekey 证书,需要根据网关申请反馈信息修改 config下的 auth_mode、cert_name、cert_file、private_key_file、private_key_password 等项。
如果使用文件证书,需要把 auth_mode 配置为 2,把收到文件证书 pfx 文件放置到配置文件所在的 cfg 目录下,并把文件名填写到 cert_file 中,证书密码填写到private_key_password 中。
如果使用 Ekey 证书,需要把 auth_mode 配置为 3,并在 cert_name 中填写 Ekey 证书上标的证书名,把 Ekey 密码填写到 private_key_password 中。
-->
<auth_mode>1</auth_mode>
<!-- CA 服务器证书文件名(使用 SSL 时必需) -->
<ca_file>ca.crt</ca_file>
<!-- 证书号,使用 Ekey 证书时需要填写为 Ekey 证书上标注的证书号 -->
<cert_name></cert_name>
<!-- 本地证书文件名(需要文件证书时必需,使用 Ekey 证书时不用填) -->
<cert_file></cert_file>
<!-- 本地私钥文件名,使用文件证书时需要填写 -->
<private_key_file></private_key_file>
<!-- 加密后的“证书文件或 Ekey 密码”,通过网关监控界面生成,参见《新一代交易系统网关监控界面用户手册》密码管理章节。 -->
<private_key_password></private_key_password>
<!-- EKEY 驱动文件名,非必填项,支持相对路径与绝对路径-->
<!-- 相对路径默认相对于当前目录,可以在启动网关程序时通过-w 参数指定-->
<ekey_driver_file></ekey_driver_file>
<!-- 自动清除历史日志和持久化数据 -->
<auto_clean>
<!-- 开关, 0 关闭 1 打开 -->
<enable>1</enable>
<!-- 文件保留天数,最小值为 1 天 -->
<keep_days>14</keep_days>
</auto_clean>
<!-- 数据持久化,0 关闭 1 打开 ,持久化会影响网关的处理性能并占用更多的系统资源,持久化的数据只能用来协助进行错误排查,不应作为正常的交易数据使用-->
<data_persistence>
<server_enable>0</server_enable>
<user_enable>0</user_enable>
</data_persistence>

2.2.2 通信服务器配置

<comm_server>
<!-- # igmp 协议版本, 有效值为 V2 和 V3.默认为 V2 -->
<igmp_version>V3<igmp_version>
<!-- 单个组播通道对应的接收缓冲区 N*8KByte -->
<realtime_service_buffer_size>10240</realtime_service_buffer_size>
<!-- 通道类型列表,不同类型的通道可以从相同或不同网卡接收数据 -->
<!-- 其中通道类型 line_type->type 为关键字,1 代表福田中心组播的接收网卡
-->
<!-- 如果希望调整通道的优先级,即尽可能优先使用滨海的组播地址发送的数据,则请将 type=2 的整个条目迁移至第一个条目,type=2->type=1->type=3 -->
<line_type_list>
<line_type>
<type>1</type>
<description>福田中心</description>
<!-- 本类型通道使用的接收网卡地址,即运行本网关的服务器上的某个网卡的地址 -->
<interface>__RE_LOCAL_IP__</interface>
</line_type>
<line_type>
<type>2</type>
<description>滨海中心</description>
<!-- 本类型通道使用的接收网卡地址 -->
<interface>__RE_LOCAL_IP__</interface>
</line_type>
<line_type>
<type>3</type>
<description>卫星线路</description>
<!-- 本类型通道使用的接收网卡地址 -->
<interface>__RE_LOCAL_IP__</interface>
</line_type>
</line_type_list>
<!-- 管理通道,本配置主要用于接收本网关使用的线上配置信息 -->
<admin_service>
<line>
<id>9901</id>
<group_id>99</group_id>
<!-- 通道类型列表中的 type -->
<line_type_id>1</line_type_id>
<!-- 组播源地址,发送组播的服务器网卡地址,支持 NAT。igmp_version=V3 时必填 -->
<source>172.27.0.25</ source >
<!-- 组播地址,不支持 NAT -->
<address>237.2.101.29</address>
<!-- 组播端口,不支持 NAT -->
<port>6017</port>
</line>
<line>
<id>9902</id>
<group_id>99</group_id>
<line_type_id>2</line_type_id>
<source>172.27.0.25</ source >
<address>237.2.101.30</address>
<port>6018</port>
</line>
</admin_service>
<!-- 重传服务器配置信息, 网络版必须配置 -->
<resend_service>
<line>
<id>1</id>
<!-- 通信重传服务器提供的监听地址和端口,支持 NAT。 -->
<address>172.25.128.81</address>
<port>7018</port>
</line>
<line>
<id>2</id>
<!-- 通信重传服务器提供的监听地址和端口,支持 NAT。 -->
<address>172.25.0.81</address>
<port>7018</port>
</line>
</resend_service>
</comm_server>
2.2.3 接入用户端配置
<access_user>
<!-- 连接网关时使用的登录密码 -->
<password>__PASSWORD__</password>
<!-- 允许访问的客户端地址(如 192.168.0.1,192.168.0.0/24) ,空表示不做访问地址限制,在生产系统上应明确指定,不应留空 -->
<allowed_addresses></allowed_addresses>
<!-- 实时服务接入用户配置。一个网关可以支持多个实时端口,但不同端口间接收的频道数据不能重复,该功能主要用于大吞吐量下的负载均衡,单个 TCP 只能支持<=50000 笔/秒的逐笔数据传输 -->
<realtime_service_list>
<realtime_service>
<!-- 网关监听网卡地址,用于接收用户连接请求,默认为 0.0.0.0,在所有网卡上监听 -->
<interface>0.0.0.0</interface>
<!-- 网关监听端口,可自行修改 -->
<port>8016</port>
<!-- 实时会话标识,与登录消息的 sender_comp_id 对应,可以保持默认配置 -->
<sender_comp_id>realtime</sender_comp_id>
<!-- 用户指定接收的频道信息,不同的会话频道不能重复,频道支持*,?两种通配符。*表示所有,10??表示接收所有以 10 打头且长度为 4 位的频道 -->
<user_channel_list>
<channel>*</channel>
</user_channel_list>
</realtime_service>
</realtime_service_list>
<!-- 重传服务接入用户配置 -->
<resend_service>
<!-- 网关监听网卡地址,用于接收用户连接请求,默认为 0.0.0.0,在所有网卡上监听-->
<interface>0.0.0.0</interface>
<!-- 网关监听端口 -->
<port>8018</port>
<!-- 重传会话标识,登陆消息中的 sender_comp_id 应与本配置保持一致,
可以保持默认配置-->
<sender_comp_id>resend</sender_comp_id>
</resend_service>
</access_user>
2.2.4 网关监控服务配置
<monitor_service>
<!-- 网关监控服务监听端口 -->
<port>7501</port>
<!-- 加密后的“监控接口登录密码”,通过网关监控界面生成,参见《新一代交易系统网关监控界面用户手册》密码管理章节。 -->
<password>__PASSWORD__</password>
<!-- 网关监控服务允许访问的客户端地址(如 192.168.0.1,192.168.0.0/24) ,空表示不做访问地址限制,在生产系统上应明确指定,不应留空 -->
<allowed_addresses></allowed_addresses>
</monitor_service>
2.2.5 组播源地址转换列表
使用 IGMP V3 时,如果需要对组播源地址做 NAT 转换,则请首先使用深交所公布的原始地址配置 cfg 目录下的 config.xml(注意此时不要使用转换后的地址),再在网关 cfg目录下,配置 destination_nat_list.xml 文件;
注意:为了便于排查 igmp v3 版本的组播故障排查,请先在不进行组播源地址 NAT 转换的情况下,配置网关,测试完成后再进行 NAT 测试。
<?xml version="1.0" encoding="UTF-8"?>
<destination_nat_list>
<row>
<!-- 深交所公布的原始地址,与 config.xml 中 line.source 对应, 每一个源地址对应一个条目 -->
<orig_source_address>192.168.0.1</orig_source_address>
<!-- 转换后的组播源地址 -->
<nat_source_address>192.168.1.1</nat_source_address>
</row>
<row>
<orig_source_address>192.168.0.2</orig_source_address>
<nat_source_address>192.168.1.2</nat_source_address>
</row>
</destination_nat_list>
注意:组播源地址由两个文件构成,如果做 NAT 则需要对 cfg/config.xml(静态配置),cfg/mdgw_realtime_line_list.xml (动态配置,启动后生成)两个文件中的 source都进行转换。
2.2.6 系统配置
1. 请正确配置 windows 防火墙或者将防火墙关闭
2. 允许不超过 8Kbyte 的组播包通过网络

三、运维功能使用说明

3.1 日常运维功能使用说明

3.1.1 启动网关
配置好行情网关后,直接运行 mdgw.exe 即可启动行情网关,此时以当前目录作为工作目录。
如果需要,还可以通过-w 参数指定可执行程序的工作目录(如: mdgw.exe –wworkspace),查看所有网关启动参数说明,请执行: mdgw.exe --help。启动后,行情接收系统可以通过端口 8016、8018 与行情网关建立连接,并开始接收行情数据。
3.1.2 停止网关
在网关启动的终端界面执行:Ctrl+c 可以停止网关运行。
3.1.3 重启网关
参见“启动网关“章节

3.2 监控功能使用说明

网关通过基于 TCP/IP 的网关监控接口,可以提供网关的实时工作状态。
具体的监控协议及提供的监控信息可参见如下文档:
《深圳证券交易所新一代交易系统网关监控会话接口规范》
《深圳证券交易所新一代交易系统行情网关监控数据接口规范》
用户可以遵循上述网关监控接口把对网关的监控集成到用户的监控系统中,也可以使用深圳证券交易所单独提供的网关监控程序对网关的状态进行监控。

四、应当遵循的标准或规范

4.1 法律、版权及其他声明

1.确保不存在盗版或侵犯第三方知识版权的现象与行为。
2.定制开发的软件,包括开发文档和源代码,版权属于深圳证券交易所。

4.2 适用的标准

1.深圳证券交易所信息安全管理体系(ISMS):ISO 27001:2005

五、其它约束条件

六、附录

6.1 常见问题

6.1.1 深圳证券交易所接入服务热线(运行或网络)
0755-83182222;
6.1.2 接入环境介绍
网关安装包中提供了不同环境的配置样例,请根据自身要接入的环境选择样例配置模版,并将其更名为 config.xml。之后,通过“http://www.szse.cn-->信息查询-->其他信息“查询功能获取《新一代交易系统行情服务接入与网关配置介绍》查看行情网关配置过程中需要注意的事项,以及《新一代交易系统上线行情信息商碰头会》了解行情网关的实现细节及架构。
6.1.3 使用 STEP 协议必须具备的基础知识
首先,需要充分了解 FIX 和 FAST 协议,上述两种协议的具体资料请登录 fix 官方网站获取。
其次,在充分了解了 FIX 和 FAST 协议之后,请仔细阅读深交所官网->新一代交易系统专区->接口规范 下的 《轻量级 STEP 会话层接口规范》和《深圳证券交易所 STEP行情数据接口规范》以及《深圳证券交易所 Binary 行情数据接口规范》。阅读《深圳证券交易所 Binary 行情数据接口规范》有助于您更深刻的理解《深圳证券交易所 STEP行情数据接口规范》。
最后,根据安装包“测试数据“目录下的数据样例开发测试的系统。
6.1.4 一个行情网关是否可以建立多个实时会话
一个网关可以支持多个实时端口,但不同端口接收的频道数据不能重复,该功能主要用于大吞吐量下的负载均衡,目前单个 TCP 只能支持<=50000 笔/秒的逐笔数据传输。
用户系统应该能够支持同时从多个 TCP 连接接收数据。
6.1.5 实时会话接收过程中为何会发生中断
行情网关在向用户发送数据时,如果发生缓冲区阻塞,就会中断与用户之间的连接。
该行为主要是因为行情网关使用组播从服务器端接收数据,如果用户接收端速度无法匹配则会导致大量的组播丢包。
如果用户在使用过程中频繁遇到会话中断的情况,请尝试如下解决方案:
1、在接收数据时解析消息头和消息尾后即将数据存入缓冲队列,由后续进程在进行消息体的处理。
2、将行情网关单独部署在一台服务器上。由于使用 STEP 协议时,需要 CPU 以及内存资源都比较多,强烈建议使用 STEP 协议的用户为行情网关单独部署一台服务器。
3、可通过配置多个实时端口对数据进行并发处理。
4、如果你的服务器资源很多,可以尝试调整<user_send_queue_len>参数,该方式会导致时延增加,而且可能会因为服务器资源耗尽导致程序异常,所以不建议采用该方式。
6.1.6 通过远程连接启动网关后,发现网关运行有卡顿,柜台连接网关有时超时
         网关会把部分日志输出到控制台,如果用 telnet、radmin 等工具远程启动网关的话,有可能由于远程线路速度慢导致网关在输出日志时卡顿,表现为网关运行缓慢或者出现连接超时。此时可以在启动网关时加上-q 参数在控制台只输出警告以上级别的日志,以避免由于控制台速度慢影响网关的正常运行。
6.1.7 在 Windows 下,能否以最小化窗口方式启动网关程序?
         可以。可以为网关程序创建一个快捷方式,在快捷方式中,“运行方式”设为“最小化”。
          也可以在命令行或者批处理中,使用 start /min 命令启动网关。在 Linux 版本的网关中可以在启动时加上-d 参数让网关在后台运行。
6.1.8 Windows 下,有时候运行网关的 DOS 窗口中会出现反白字符,并且网关卡死。
          这时什么原因?如何避免?
         这是由于操作人员在 DOS 窗口中误操作,如点击变成拖动,导致进入了标记状态, Windows 把网关的运行冻结了。此时敲一下回车能解除冻结。
         可以通过禁用 DOS 窗口属性的“快速编辑模式”避免此情况的发生。
6.1.9 网关监控界面上显示“柜台未连接”是什么意思?
      “柜台未连接”指的是柜台未与网关建立连接。可能是柜台未启动,需要检查一下柜台是否已启动,是否正确配置网关的 IP 地址和端口;也可能是柜台登录网关失败,可以参照后面附录中“柜台与交易网关间通信错误”进行排查。
6.1.10 其他问题
         其它网关常见问题请参见深交所官方网站->新一代交易系统专区《深圳证券交易所新一代交易系统 FAQ》中的“接入“章节。

6.2 配置样例参考

6.2.1 文件证书配置样例
<!-- SSL 相关配置 -->
<!-- 网关认证方式(2 SSL 文件证书,3 SSL EKey 证书) -->
<auth_mode>2</auth_mode>
<!-- CA 服务器证书文件名(使用 SSL 时必需) -->
<ca_file>ca.crt</ca_file>
<!-- 本地证书文件名-->
<cert_file> ********.pfx</cert_file>
<!—证书文件或 Ekey 密码,填写规则参见《新一代交易系统网关监控界面用户手册》3.4.2 密码管理章节中证书密码。 -->
<private_key_password>!@#_cbdaqbTKaeUM7778e627294bfc89f4a96459f1b12a89</private_key_password>
注:证书文件如 ca.crt 、 ********.pfx 存储于网关 cfg 目录下,********一般为网关 ID
注:文件证书的 private_key_password,为贵司人员在下载证书时设置的,请直接联系贵司相关人员
6.2.2 EKEY 证书配置样例
<!-- SSL 相关配置 -->
<!-- 网关认证方式(2 SSL 文件证书,3 SSL EKey 证书) -->
<auth_mode>3</auth_mode>
<!-- CA 服务器证书文件名(使用 SSL 时必需) -->
<ca_file>ca.crt</ca_file>
<!-- 证书号,使用 Ekey 证书时需要填写为 Ekey 证书上标注的证书号 -->
<cert_name>证书号</cert_name>
<!-- 证书文件或 Ekey 密码 -->
<private_key_password>!@#_cbdacToOc0o64f71b471821a39394a6f39cbeb034759</private_key_password>
注:证书文件如 ca.crt 存储于网关 cfg 目录下
注:Ekey 的 private_key_password 默认密码为“111111“,用户收到后可自行修改该密码,如果修改了改密码请直接联系贵司管理 ekey 的相关人员。如果证书密码多次输入错误被锁定,请直接连接深证通运行热线。
<!-- Ekey 驱动文件路径 -->
<ekey_driver_file>cfg/libshuttle_p11v220.so.1.0.0</ekey_driver_file>
6.2.3 调整组播优先级
        行情网关可以从行情服务器的多个中心同时接收组播数据,并由网关根据网关配置中的通道类型类表的顺序优先选择排在前边的通道接收数据。
网关在进行选择时如果福田和滨海的组播地址上都有数据,则:
1、按 line_type_list 配置顺序依次选择第一个可用的组播地址
2、选择完毕,直到本路组播地址超时前不会再次进行选择
3、如果当前组播地址接收超时,则会使用同样的策略再次进行选择
4、选择时,如果所有组播地址上都超时,则继续在当前地址上接收,并等待下一次接收超时时,再次进行选择。
福田中心优先
<line_type_list>
<line_type>
<type>1</type>
<description>福田中心</description>
<interface>IP1</interface>
</line_type>
<line_type>
<type>2</type>
<description>滨海中心</description>
<interface>IP2</interface>
</line_type>
<line_type_list>
滨海中心优先
<line_type_list>
<line_type>
<type>2</type>
<description>滨海中心</description>
<interface>IP2</interface>
</line_type>
<line_type>
<type>1</type>
<description>福田中心</description>
<interface>IP1</interface>
</line_type>
<line_type_list>
注:调整优先级时,”只能”调整不同<line_type>条目整体位置,”不能”对条目中的属性继续进行调整
注:调整优先级时,”不能”修改 admin_service 中 line_type_id 属性值
6.2.4 同一台服务器配置多个网关
        确保不同网关配置中<access_user> 和<monitor_service>条目下配置的端口不能冲突。

6.3 行情网关常见错误信息说明

6.3.1 行情网关启动时闪退
6.3.2 行情网关未就绪或已就绪但收不到行情数据
         网关监控界面上显示“未就绪“或者显示为”已就绪”但是收不到行情数据
采取的排查步骤:
A. 首先请向深证通运行及网络咨询热线 0755-83182222,当前时间可以测试或接入
B. 确保行情网关所在服务器的操作系统防火墙处于关闭状态
C. 请网关配置人员先确保管理通道地址 admin_service 是否与安装包中的模板一致(L1 地面和 L2 用户如果在监控界面显示“已连接服务器“则说明网关配置正确)。此时,组播超时基本可认为是贵司网络问题,需请贵司网管人员介入处理。
D. 请贵公司网管人员确认 cfg/config.xml 中 line_type_list->line_type->interface 中指定的本机IP 地址与接入深交所福田(type=1)和滨海(type=2)站点正确对应。
E. L1 地面行情和 L2 用户确保 cfg/config.xml 中 igmp_version 存在且等于 V3;
F. L1 卫星行情用户确保 cfg/config.xml 中 igmp_version 不存在;或者存在且等于 V2;
G. 先在行情网关所在服务器启动抓包工具(如 wireshark),之后启动或重启行情网关:
L1 地面行情和 L2 行情用户:
a) 如果可以抓取到由行情网关所在服务器发往路由器的 igmp v3 的 report 消息,则
说明行情网关正确发出加组消息。此时,请贵司网管检查为何组播数据无法从路
由器送达网关所在的服务器。
b) 如果可以抓取到由行情网关所在服务器发往路由器的 igmp v2 的 report 消息,且cfg/config.xml 中 igmp_version= V3,则说明贵司网络环境当前只能使用 igmp v2版本协议,不满足深交所 igmp v3 协议的要求。此时,请贵司网管向通信公司运维热线确认网络配置要求。
L1 卫星用户
a) 如果可以抓取到由行情网关所在服务器发往路由器的 igmp v2 的 report 消息,则请贵司网管与通信公司运维热线确认卫星接收机是否正常,是否有组播数据。如
果有,请贵司网管检查卫星接收机与行情网关所在服务器之间的网络设置是否正确。
H. 问题实在无法解决,拨打深圳证券通信有限公司运行及网络咨询热线 0755-83182222
6.3.3 网关监控界面显示的实时通道状态异常
1. 通道 ID > =9000 的通道为管理通道,<9000 的通道为数据通道
2. 主用状态=是,表示网关当前正在使用该通道上的数据
3. 正常情况下,L1 卫星网关“通道状态=正常“的通道数应=全部通道数的 1/4
4. 正常情况下,L1 地面网关“通道状态=正常“的通道数应=全部通道数的 1/2
5. 正常情况下,L2 网关“通道状态=正常“的通道数应=全部通道数的 1/4
6.3.4 行情网关连接通信服务器失败
        网关监控界面上显示“未连接“服务器(注意,L1 卫星没有是否连接服务器的状态)
6.3.5 柜台与行情网关间通信错误
6.3.6 其它信息
6.3.7 WanM 错误码(查找日志中“SSCC_WANM”关键字)
0 0