FIX MarketData メッセージを受信して内部アプリケーションに送信する FIX アプリケーションがあります。非常に大きなログが生成されるため、MarketData のログ記録を無効にしましたが、ストアでも同じ問題が発生します。ヒープ ダンプを見ると、TreeMap が継続的に成長していることがわかります。ほとんどの場合、TreeMap は FileStore にあるものです。
そのような場合、人々は何をしますか?
ありがとう
1 に答える
0
CustomFileStore
インターフェイスを実装するクラスを作成しMessageStore
ます。オブジェクトを受け取るコンストラクターを作成MessageStore
し、メンバーとして格納します。MessageStore
メソッドを除く、インターフェイス内のすべてのメソッドをMessageStore
メンバーに委譲しますset
。メソッド フィルター メッセージの実装ではset
、MarketData メッセージの場合は何もせず、そうでない場合set
はMessageStore
メンバーを呼び出します。CustomFileStoreFactory
から派生したクラスを作成しFileStoreFactory
、メソッドをオーバーライドしますcreate
。create メソッドで、コンストラクターに戻り値super.create
(FileStore
オブジェクト) を渡す CustomFileStore を作成します。- のインスタンスを に渡し
CustomFileStoreFactory
ますSocketInitiator
。
これはかなりハックであり、他に方法がない限り、自分でこれを行うことはありません (自分でこれを行ったことはありません)。MessageStore.get
で を呼び出すと、CustomFileStore
予期しない動作 (例外、または誤った結果) が発生する可能性があります。したがって、これを行うことはお勧めしません。
于 2015-04-20T17:37:12.797 に答える