问题标签 [quickfixj]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
744 浏览

log4j - QuickFIX/J 旋转 .messages.log

除了那个帖子,我在网上找不到任何可以很好地回答这个问题的东西。

有什么方法可以使用 QuickFIX/J 旋转日志文件?我正在使用 Log4j 来轮换我的日志文件,但我无法轮换 QuickFIX 消息。

非常感谢

0 投票
2 回答
833 浏览

quickfix - 如何在 QuickFix/J 中编写 OrderCancelRequest

我正在尝试使用 FIX.4.2 创建 OrderCancelRequest,但与 OrderID、OrigClOrdID 和 ClOrdID 混淆。我在网上搜索,但我不清楚。如果可能,请解释这些参数并提供 OrderCancelRequest 的代码片段。

提前致谢。

0 投票
1 回答
638 浏览

quickfix - Fix.4.2 协议实现(Fiximulator - Banzai(client)) 消息日志

我正在尝试实现 Fix.4.2 协议,但是我在下面附加的消息日志很难理解。这里 Logon(35=A) 请求是从客户端与 MsgSeqNum(34=1) 一起发送的。然后为了测试 ResendRequest 和 SequenceReset 会话级消息,我发送了一个带有 MsgSeqNum=7 的 NewOrderSingle 请求(而不是 MsgSeqNum=2,因为后续消息应该在登录请求后增加 msgseqnum)。正如预期的那样,MsgSeqNum 太高了,一个 Fiximulator 响应了 ResendRequest(35=2),无法从 2 发送到 0(即从 2 到 7)。这里为什么 Fiximulator 不等待客户的回复?相反,它正在发送心跳消息。为什么客户端发送 ResendRequest 以响应 Fiximulator 的 ResendRequest 而不是发送 SequenceReset 消息?

如果可能,还要解释剩余的情况。

提前致谢。在此处输入图像描述

0 投票
1 回答
453 浏览

quickfix - 登录后发送 ResendRequest

我的客户端修复引擎使用 quickfix4j 连接到服务器修复引擎。

服务器修复引擎在周日凌晨 1 点到周五下午 5 点运行。

这是我的启动器配置

我的会话在 19:00 注销:EST(即 00:00:00 UTC)。这是对的。

再次客户端修复引擎发送登录请求并从服务器获取登录响应。登录响应后,我立即看到我的修复引擎正在重新发送请求(35 = 2)。

我观察到我的登录请求 35=A 的序列号为 0,但服务器结果要高得多。

由于此客户端修复引擎发送 ResendRequest。

我需要更新我的配置来解决这个问题吗?

0 投票
1 回答
365 浏览

quickfix - ResetOnLogout 是/否

我的服务器修复引擎有一个为期一周的会话。但是我的客户端修复引擎有一天的会话。

在 EOD 它注销并再次登录,它正在重置序列号(登录消息有 34 = 0),即使我设置了 ResetOnLogout = N。这个对吗?

如果我不想在周中重置序列号,我是否需要让我的客户端会话与服务器会话相同(一周开始-->太阳结束-->周五)?

0 投票
3 回答
1639 浏览

java - QuickFIX/J 中断开客户端的消息队列行为

我想澄清QuickFIX/J(FIX 4.2)在以下情况下的行为。QuickFIX/J此通信涉及两方:

  1. 客户端发起程序,称为I
  2. 我们公司的接受者程序,称为A

登录A时,他们用 tag 交换 FIX 消息35=A。建立连接后,开始提交订单。然而,可能有一点,意外断开连接,此时A决定为I的所有未结订单发送取消(这是有效的,因为A不知道为什么失败或什么时候会活着回来)。

请注意,整个取消连接过程由A单独启动和处理 - 它从AonLogout(...)方法启动并由其正常的订单管理机制处理。为I35=F的每个未结订单生成一条消息,并在每次成功取消时生成一个( )。ExecutionReport35=8

活着回来时,这些ExecutionReports 必须以某种方式交付给,以便它知道它之前的所有订单都已被取消。我的印象是,QuickFIX/J消息队列实现在没有应用程序级帮助的情况下处理了这个问题。确保所有QuickFIX消息都能传递给交易对手 ( http://permalink.gmane.org/gmane.comp.finance.quickfix.devel/169 )。

然而,与我的理解相反,A的日志ExecutionReport中没有显示,或者在重新连接时没有发送给,导致不知道它之前的订单已被取消。我注意到由于in方法的以下源代码没有发生日志记录:QuickFIXsendRaw(Message message, int num)SessionQuickFIX/J

在为IExecutionReport断开连接发起的取消生成消息时,会话未登录,因此它从未命中并且没有发生日志记录。我相信出于同样的原因,没有消息排队(基于没有收到任何消息的事实)。send(messageString);

我们公司基于QuickFIX/J保证所有消息都能无损传递的信念进行了许多实施,但我对上述场景的观察表明并非如此。

QuickFIX/J当会话未登录时, 的消息队列在这种情况下的表现如何?无论如何,它应该排队消息,等待将来会话再次可用时发送,还是在会话关闭时停止排队?

0 投票
1 回答
565 浏览

fix-protocol - 在处理 FIX 传入消息时处理 QuickFix/J 中的错误的选项

我正在使用 QuickFIX/J 来实现一个非常简单的跟踪TradeCaptureReport消息的应用程序。基本上,该应用程序仅将通过接收到的所有消息存储public void fromApp(Message message, SessionID session)到数据库中。

假设由于某种原因数据库暂时停机。解决这种情况的最佳方法是什么?

  1. 只需抛出一个RuntimeExceptionfrom public void fromApp(Message message, SessionID session)。这将防止消息从队列中删除,并且fromApp将使用此消息一次又一次地调用,直到数据库再次启动。到达我的 FIX 引擎的其他消息将堆积在我们这边。

  2. 一旦我们检测到数据库连接问题,我们就会注销并从fromApp. 这确保了最后一条消息不会从队列中删除,并且任何进一步的消息都将堆积在 FIX 会话的另一端(在对方)。我们继续轮询数据库,直到它再次出现。再一次,我们登录并从我们离开的地方继续。

还有其他选择吗?

0 投票
1 回答
1448 浏览

fix-protocol - 如何在 FIX 消息中创建多方?

我需要创建TradeCaptureReportFIX 消息。在我尝试创建之前,如何做到这一点很清楚Parties



有人可以提供 Java 代码示例如何创建和链接它们RptSide (803)吗?

0 投票
1 回答
350 浏览

jvm - SSL Handshake 在 Linux 上不工作,但在 OS X 上工作

我正在对使用 QuickFIX/J 并使用 Groovy 2.4.5 编写的应用程序进行故障排除,该应用程序使用 Gradle 2.10 构建。此 FIX 服务器还通过 Spring-boot 1.2.6 提供 API。

虽然从 OS X 运行时应用程序可以通过 SSL 连接连接到测试对等接受器,但从 Ubuntu 14.04 运行时它不起作用。

Linux 事件日志:

[时间戳]:断开连接:套接字异常(/ [ip:port]):javax.net.ssl.SSLHandshakeException:SSL握手失败。

我试过检查证书,keytool但找不到证书问题。我还检查了文件的路径是否匹配大小写,排除了 OSX 文件系统不区分大小写的性质。

证书由运行接受者的公司生成和签名。如何进一步解决Ubuntu 上的握手失败问题?


更新

在为 QuickFIX/J 实现更多日志记录后,我得到了额外的信息。我尝试的所有谷歌搜索都没有很好地解释错误的含义:

[时间戳] [NioProcessor-3] 调试 o.apache.mina.filter.ssl.SslHandler - 来自 SSLEngine.closeInbound() 的意外异常。javax.net.ssl.SSLException:入站在收到对等方的 close_notify 之前关闭:可能的截断攻击?

0 投票
2 回答
1329 浏览

java - 如何测试 QuickFIXJ 应用程序

我已经实现了一个QuickFIX/J应用程序(J代表Java)。现在我考虑如何设置固定的测试用例。

我有点熟悉,JUnit但我不知道它是否适合那个问题,因为QuickFIX/J有回调(例如fromApp-Application类的方法)。

也许有人遇到过同样的问题并找到了一个很好的解决方案。;)