2017-07-04 8 views
1

最近、QuickFIX/Jライブラリを使用して通信し、リアルタイムレポートメッセージをFIXプロトコルを使用してAPA(Approved Publication Arrangement)サービスに送信しました。queueCapacity usage for SocketInitiator(QuickFIX/J)

SocketInitiatorコンストラクタのパラメータの1つはqueueCapacityですが、残念なことにドキュメンテーションにその使用方法に関する情報はあまりありません。私が見ることができるのは、SocketInitiatorがメッセージを非同期に処理するための内部キューのサイズを決定するために使用されます。コンストラクタで提供されない場合、デフォルト値は10000に設定されます。

10000が「十分に良い」かどうか、キュー容量の最大サイズに達した場合にどうなるかについてのガイドラインがあるかどうか、私は疑問に思っていました。

答えて

2

SingleThreadedEventHandlingStrategy in 1.6.3の実装で使用されるキューは、java.util.concurrent.LinkedBlockingQueueです。

使用されるコンストラクタは、固定幅のキューを作成するpublic LinkedBlockingQueue(int capacity)です。最大容量に達し、キュー上のSessionMessageEventインスタンスがputである場合、キュー内のスペースが利用可能になるまで(すなわち、キュー内のイベントが処理されるまで)、イベントブロックはスレッドをブロックする。

QuickFIX/Jを使用するケースの99.9%は10000で十分です。

+0

お返事ありがとうございます。私はそうだと思っていましたが、もし10kが入って来るAdminとAppのメッセージを扱うのに十分であるかどうかは分かりませんでした。 –