我正在使用QuickFIX/J来实现一个非常简单的应用程序,它可以跟踪TradeCaptureReport消息。基本上,应用程序只将通过public void fromApp(Message message, SessionID session)接收的所有消息存储到数据库中。
假设由于某种原因,数据库暂时关闭。解决这种情况的最佳办法是什么?
public void fromApp(Message message, SessionID session)中抛出一个public void fromApp(Message message, SessionID session)。这将防止从队列中删除消息,并且在数据库一次又一次地运行数据库之前,将使用此消息一次又一次调用fromApp。到达我的FIX引擎的其他信息将堆积在我们的端部。fromApp抛出一个fromApp。这将确保最后一条消息不会从队列中删除,并且任何进一步的消息都将堆积在FIX会话的另一边(在对手方)。我们继续轮询数据库,直到它再次出现。再一次,我们登录并从我们离开的地方继续。还有其他选择吗?
发布于 2016-02-13 09:25:12
第二个选项还可以:当您检测到数据库/OMS出现故障时,请退出。但是,您可能只在刚刚收到TradeCaptureReport时才注意到这一点。
选项:
BusinessMessageReject进行答复,BusinessRejectReason.APPLICATION_NOT_AVAILABLE。将RefSeqNum设置为您收到的消息的MsgSeqNum,可以选择在Text (58)中设置原因。请注意,这取决于对手方的实现,这将是正确的处理,甚至是支持。https://stackoverflow.com/questions/35120908
复制相似问题