我正在使用 QuickFIX/J 来实现一个非常简单的跟踪TradeCaptureReport
消息的应用程序。基本上,该应用程序仅将通过接收到的所有消息存储public void fromApp(Message message, SessionID session)
到数据库中。
假设由于某种原因数据库暂时停机。解决这种情况的最佳方法是什么?
只需抛出一个
RuntimeException
frompublic void fromApp(Message message, SessionID session)
。这将防止消息从队列中删除,并且fromApp
将使用此消息一次又一次地调用,直到数据库再次启动。到达我的 FIX 引擎的其他消息将堆积在我们这边。一旦我们检测到数据库连接问题,我们就会注销并从
fromApp
. 这确保了最后一条消息不会从队列中删除,并且任何进一步的消息都将堆积在 FIX 会话的另一端(在对方)。我们继续轮询数据库,直到它再次出现。再一次,我们登录并从我们离开的地方继续。
还有其他选择吗?