我有一个接受者应用程序,它将市场数据发送给用户。问题是,即使我们为会话设置了PersistMessages = N
,我们仍然可以看到消息被保留。根据quickfixj帮助文档,如果我们设置PersistMessages = N
然后Quickfixj坚持邮件
如果设置为N,则不会持久保留消息。这将强制QuickFIX 始终发送GapFills而不是重新发送消息。如果你知道你永远不想重发一封邮件,请使用这个。适用于市场数据流 。
在这个问题上的任何帮助表示赞赏
预先感谢 阿文德
我有一个接受者应用程序,它将市场数据发送给用户。问题是,即使我们为会话设置了PersistMessages = N
,我们仍然可以看到消息被保留。根据quickfixj帮助文档,如果我们设置PersistMessages = N
然后Quickfixj坚持邮件
如果设置为N,则不会持久保留消息。这将强制QuickFIX 始终发送GapFills而不是重新发送消息。如果你知道你永远不想重发一封邮件,请使用这个。适用于市场数据流 。
在这个问题上的任何帮助表示赞赏
预先感谢 阿文德
你能粘贴您的配置文件或一些东西,将是有用的? 您在日志文件中看到的消息可能是管理员消息。 据我所知,即使您设置PersistMessages = N,管理邮件将在文件
我粘贴在[DEFAULT]下面ConnectionType = acceptor SocketAcceptPort = 8085 StartTime = 00:00:00 EndTime = 00:00:00 MillisecondsInTimeStamp = Y CheckLatency = N PersistMessages = N ResetOnLogon = Y ResetOnLogout = Y ResetOnDisconnect = Y RefreshOnLogon = N [ SESSION] \t HeartBtInt = 30 BeginString = FIX.4.2 SenderCompID = XXXXXX TargetCompID = XXXXXx UseDataDictionary = N DataDictionary = yourpath/FIX42.xml FileLogPath = yourpath/store/FileStorePath = yourpath/store/- – Arvind 2013-04-03 11:55:57
这可能是您的配置文件的问题。无论如何,如果您看到持久消息,则必须使用支持持久性的MessageStore。您还可以定义一个空的MessageStore实现,该实现不存储任何内容,并且与设置具有相同的效果(填充间隙而不是重新发送消息)。但是,使用该设置更容易,并且是首选方法。
我对cfg文件有点困惑即在哪里我需要添加“PersistMessages = N”它是在[默认]级别还是会话级别。这有什么不同吗 ? [默认] ConnectionType =受体 SocketAcceptPort = 8085 开始时间= 00:00:00 结束时间= 00:00:00 MillisecondsInTimeStamp = Y CheckLatency = N PersistMessages = N ResetOnLogon = Y ResetOnLogout = Y ResetOnDisconnect = Y RefreshOnLogon = N [SESSION] \t \t HeartBtInt = 30 BeginString = FIX.4.2 SenderCompID = XXXXXX TargetCompID = XXXXXX ù seDataDictionary = N DataDictionary = yourpath/FIX42.xml FileLogPath = yourpath/store/ FileStorePath = yourpath/store / – Arvind 2013-04-03 11:52:02
消息日志摘录(使用FileLogFactory创建)会很有帮助。你可以编辑你的问题,以包括10-20消息,包括之前/之后重新发送? – 2013-03-20 13:38:02
想知道你是如何解决它的 - 你是否仅仅注释掉了与PersistMessages = N结合的filestorepath? – 2015-03-11 18:36:05