2013-03-20 78 views
1

我有一个接受者应用程序,它将市场数据发送给用户。问题是,即使我们为会话设置了PersistMessages = N,我们仍然可以看到消息被保留。根据quickfixj帮助文档,如果我们设置PersistMessages = N然后Quickfixj坚持邮件

如果设置为N,则不会持久保留消息。这将强制QuickFIX 始终发送GapFills而不是重新发送消息。如果你知道你永远不想重发一封邮件,请使用这个。适用于市场数据流 。

在这个问题上的任何帮助表示赞赏

预先感谢 阿文德

+0

消息日志摘录(使用FileLogFactory创建)会很有帮助。你可以编辑你的问题,以包括10-20消息,包括之前/之后重新发送? – 2013-03-20 13:38:02

+0

想知道你是如何解决它的 - 你是否仅仅注释掉了与PersistMessages = N结合的filestorepath? – 2015-03-11 18:36:05

回答

0

你能粘贴您的配置文件或一些东西,将是有用的? 您在日志文件中看到的消息可能是管理员消息。 据我所知,即使您设置PersistMessages = N,管理邮件将在文件

+0

我粘贴在[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

0

这可能是您的配置文件的问题。无论如何,如果您看到持久消息,则必须使用支持持久性的MessageStore。您还可以定义一个空的MessageStore实现,该实现不存储任何内容,并且与设置具有相同的效果(填充间隙而不是重新发送消息)。但是,使用该设置更容易,并且是首选方法。

+0

我对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