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