我有一个FIX应用程序,它接收FIX MarketData消息并将它们发送到内部应用程序。我禁用了MarketData日志记录,因为它生成了非常大的日志,但我们对商店存在同样的问题。当我查看堆转储时,我发现TreeMap不断地存在。很可能TreeMap是FileStore中的一个 人们在这种情况下做了什么? 感谢
答案 0 :(得分:0)
CustomFileStore
接口的类MessageStore
。使构造函数获取MessageStore
对象并将其存储为成员。将MessageStore
接口中的所有方法委派给MessageStore
成员,set
方法除外。在实施set
方法过滤器消息时:如果是MarketData消息则不执行任何操作,否则请在set
成员上调用MessageStore
。CustomFileStoreFactory
的课程FileStoreFactory
,并覆盖create
方法。在create方法中,创建一个CustomFileStore,将构造函数从super.create
(这将是一个FileStore
对象)返回。CustomFileStoreFactory
的实例传递给您的SocketInitiator
。请注意,这是相当hacky,我不会自己这样做,除非没有别的办法(我自己从未这样做过)。如果在MessageStore.get
上调用CustomFileStore
,则可能会导致意外行为(异常或不正确的结果)。所以我建议不要这样做。