首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理传入消息时处理QuickFix/J中错误的选项

处理传入消息时处理QuickFix/J中错误的选项
EN

Stack Overflow用户
提问于 2016-01-31 23:38:56
回答 1查看 754关注 0票数 1

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

假设由于某种原因,数据库暂时关闭。解决这种情况的最佳办法是什么?

  1. 只需从public void fromApp(Message message, SessionID session)中抛出一个public void fromApp(Message message, SessionID session)。这将防止从队列中删除消息,并且在数据库一次又一次地运行数据库之前,将使用此消息一次又一次调用fromApp。到达我的FIX引擎的其他信息将堆积在我们的端部。
  2. 一旦我们检测到数据库连接问题,我们就注销并从fromApp抛出一个fromApp。这将确保最后一条消息不会从队列中删除,并且任何进一步的消息都将堆积在FIX会话的另一边(在对手方)。我们继续轮询数据库,直到它再次出现。再一次,我们登录并从我们离开的地方继续。

还有其他选择吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-13 09:25:12

第二个选项还可以:当您检测到数据库/OMS出现故障时,请退出。但是,您可能只在刚刚收到TradeCaptureReport时才注意到这一点。

选项:

  1. 使用带有拒绝原因的BusinessMessageReject进行答复,BusinessRejectReason.APPLICATION_NOT_AVAILABLE。将RefSeqNum设置为您收到的消息的MsgSeqNum,可以选择在Text (58)中设置原因。请注意,这取决于对手方的实现,这将是正确的处理,甚至是支持。
  2. 提供一个永远不会崩溃的替代消息存储。你自己维持的磁盘上的一家商店,你知道它永远不会坏掉。一旦数据库/OMS再次启动,将存储转发到数据库/OMS。这是处理这一问题的最有力的方法。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35120908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档