【问题标题】:Quickfix session setting for Bloomberg彭博的 Quickfix 会话设置
【发布时间】:2019-04-17 14:21:17
【问题描述】:

我正在尝试为不同的会话(EMSX、FIX、FX 等)建立与 QuickFIX/J 2.1 的连接,但无法连接。我收到不同的错误消息,但主要是:

一个现有的连接被远程主机强行关闭。

Bloomberg 最近已将其握手配置从 SSL 更改为 TLS。我正在尝试使用以下设置登录:

[Default]
ConnectionType=initiator
LogonTimeout=30
ReconnectInterval=30
ResetOnLogon=N
SocketConnectPort=xxxx
SocketConnectHost=xx.xxx.xxx.xx
SenderCompID=MAP_xxxx_BETA

[SESSION]
#SettingsspecificallyforFXFI
BeginString=FIX.4.4
TargetCompID=MAP_xxx_BETA
HeartBtInt=60
DataDictionary=FIX44.xml
UseDataDictionary=Y
StartTime=09:00:00 Europe/Stockholm
EndTime=23:00:00 Europe/Stockholm
SocketKeyStore=D:BB\cert.jks
SocketKeyStorePassword=xxxxxxxxxxxxxx
CheckLatency=N
MaxLatency=240
FileStorePath=messageslog\incoming
FileLogPath=messageslog\outgoing
EnabledProtocols=TLSv1.2
TargetSubID=BLOOMTest
ConnectionType=initiator
LogonTimeout=30
ReconnectInterval=30
ResetOnLogon=N
SocketConnectPort=xxxx
SocketConnectHost=xx.xxx.xxx.xx
SenderCompID=MAP_xxxx_BETA    

有什么建议吗?

【问题讨论】:

  • 建立连接的时间是否足以发送登录消息?
  • 已创建外发短信日志。传出文本事件日志:断开连接:套接字异常(/IP):java.io.IOException:现有连接被远程主机强行关闭。
  • 那是事件日志,通常不是很有帮助。它真的会发送 FIX 登录消息吗?
  • 不,我不认为向 BB 发送 FIX 登录消息
  • QuickFIX/J 事件日志说什么?您可以在 FileLogPath 中找到它,文件类似于 <FIX version>-<SenderCompId>-<TargetCompId>.event.logedit您的问题并包括相关位。此外,您的目标/发件人组合 ID 可疑地相似。确定他们是正确的?

标签: fix-protocol quickfixj


【解决方案1】:

来自一个有效的例子

[DEFAULT]
ConnectionType=initiator
ReconnectInterval=30
StartTime=00:00:00
EndTime=00:00:00
ResetOnLogon=Y
ResetOnLogout=Y
ResetOnDisconnect=Y
UseLocalTime=N
FileLogPath=Fix\QuickFixFiles\Bloomberg\Fxgo\xxxxxx\Logs
FileStorePath=Fix\QuickFixFiles\Bloomberg\Fxgo\xxxxx\Store

[SESSION]
BeginString=FIX.4.4
SenderCompID=xxxxxxxx
TargetCompID=xxxxxxxx
TargetLocationID=FXEM
SessionQualifier=Fxgo1
HeartBtInt=30
SocketConnectHost=xx.xx.xx.xx
SocketConnectPort=xxxx
DataDictionary=Fix\QuickFixFiles\Bloomberg\Fxgo\xxxxx\DataDictionary\MAP_v2.0_QuickFIX_FXGO.xml
SSLEnable=Y
SSLProtocols=Tls12
SSLValidateCertificates=N
SSLCertificate=Fix\QuickFixFiles\Bloomberg\Fxgo\xxxxx\TlsCerts\pkcs12\cert.pfx
SSLCertificatePassword=xxxxxxxxxxxxxxxxxxxxxxxx

【讨论】:

    【解决方案2】:

    您的[SESSION] 配置中似乎缺少以下设置:

    SocketUseSSL=Y
    

    来自configuration for QuickFIX/J docu

    SocketUseSSL:为 QFJ 接受者或发起者启用 SSL。

    它们实际上是指 SSL 或 TLS,无论您使用 EnabledProtocols 设置启用了哪个。

    【讨论】:

    • 谢谢..我添加了 SocketUseSSL=Y,但我仍然断开连接。根据 BB 的说法,它看起来仍然像我在没有 TLS 证书的情况下连接。
    • @Rebecca 你确定你的设置正确吗:SocketKeyStore=D:BB\cert.jks。对我来说,这看起来不像是一条有效的路径?我可能弄错了,但请仔细检查以确保。与密码相同。
    • 在 SocketKeyStore 中,我指的是:磁盘“D”、文件夹 BB、文件夹 jks,以及名为 cert.jks 的特定证书。我有: SocketKeyStore= D:BB\jks\cert.jks 我还尝试将反斜杠更改为 /.. 但结果相同:已断开连接。试图找到“路径”样本,但它们看起来都像我上面的。
    • @Rebecca 你试过SocketKeyStore=D:\BB\jks\cert.jks(冒号后加反斜杠)吗?
    • 是的,我在上面的文字中错过了这一点,但我确实声明了一个反斜杠。当我删除它时,我收到一条错误消息,表明证书没有找到,所以它以某种方式找到了证书,但没有读取它。我使用以下设置:(添加评论)
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多