在运行我的quickfixj应用程序一段时间后,我遇到了内存不足的问题。经过一番调查后,我发现这是由于quickfixj缓存在收到重发请求时重新发送的消息引起的。
因此,对于测试,我在特定会话中将此标志设置为N.之后我的记忆问题完全消失了。但我不明白为什么当我正确设置此属性时,quickfixj将这些消息保留在内存中:FileStorePath。这些消息应存储在文件中,但不是。我确实看到我在FileStorePath中设置的目录中存在一些文件,但它们似乎都没有存储消息,我只能在其中看到序列号。我是否需要设置除此之外的其他标志才能使其正常工作?
我不打算在测试之外使用PersisMessages标志。我更喜欢具有合理数字的FileStoreMaxCachedMsgs标志。我还需要知道当我将PersisMessages设置为N时,如果我的应用收到重发请求会发生什么? quickfixj会改为发送gapfill还是会因某些异常消息而崩溃?
由于
答案 0 :(得分:1)
我发现quickfixj在无法找到消息时会发送间隙填充。另外,配置标志FileStoreMaxCachedMsgs用于告诉quickfixj在将它们推送到文件之前应该在缓存中保留多少消息。所以我认为这个标志应该被更改,以便让你的应用程序工作,而不会因为消息缓存而耗尽内存。
希望它对某人有所帮助。感谢