0

运行我的 quickfixj 应用程序一段时间后,我遇到了内存不足的问题。经过一番调查,我发现这是由quickfixj缓存的消息引起的,以便在收到重新发送请求时重新发送。

因此,为了进行测试,我在特定会话上将此标志设置为 N。在那之后,我的记忆问题完全消失了。但是我不明白为什么在我正确设置此属性后,quickfixj 会将这些消息保留在内存中:FileStorePath。这些消息应该存储到一个文件中,但它们不是。我确实看到我在 FileStorePath 中设置的目录中存在一些文件,但它们似乎都没有存储消息,我只能看到其中的序列号。我是否需要设置除此之外的其他标志才能使其正常工作?

我不打算在测试之外使用 PersisMessages 标志。我更喜欢具有合理数字的 FileStoreMaxCachedMsgs 标志。我还需要知道当我将 PersisMessages 设置为 N 时,如果我的应用收到重新发送请求会发生什么?quickfixj 会发送 gapfills 还是会因一些异常消息而崩溃?

谢谢

4

1 回答 1

2

我发现 quickfixj 在找不到消息时会发送间隙填充。配置标志 FileStoreMaxCachedMsgs 也用于告诉 quickfixj 在将它们推送到文件之前它应该在缓存中保留多少消息。因此,在我看来,应该更改此标志,以使您的应用程序能够正常工作,而不会因消息缓存而耗尽内存。

希望它对某人有所帮助。谢谢

于 2014-09-24T14:36:29.280 回答