3

私が Web ベースの取引所を運営していて、新しい顧客がサインアップしたとします。私はその顧客に新しい CompID を与え、今度はその CompID をアクセプターに追加したいと考えています。アクセプターを再起動する必要がありますか、それとも動的に実行できますか?

事前に CompID に同意し、それを構成のどこかに貼り付ける必要があるのは、あまりスケーラブルではないようです。

おそらくそれを行ういくつかの例を見てきましたが、それらは単純に構成を変更して、送信者/ターゲットの CompID を に設定することでほとんど無視しているよう*です。それを行う他の方法はありますか?

4

2 に答える 2

3

DynamicAcceptorSessionProviderExecutor の例で とそれがどのように使用されているかを見てください。Executor の例では、設定ファイルからセッション「テンプレート」を読み取り、これらをアクセプター エンドポイントの IP アドレスに関連付けます。アクセプター テンプレートは、「AcceptorTemplate=true」設定によって識別されます。SenderCompID だけでなく、FIX バージョンを含む任意のセッション ID フィールドをワイルドカード化できます。

セッション テンプレートの定義方法の例については、executor_dynamic.cfg を参照してください。この構成では、SenderCompID と TargetCompID の両方がワイルドカード化され、さまざまな FIX バージョンのテンプレートが定義されます (適切なデータ ディクショナリ ファイルを指定するため)。

不明なセッション ID のメッセージが到着すると、DynamicAcceptorSessionProviderはセッション ID をテンプレートのワイルドカード セッション ID と照合しようとします。一致が見つかった場合、新しいセッションが自動的に作成され、設定で明示的に定義されているかのようにアクセプターに追加されます。新しいセッションには、アクセプター セッション テンプレートで定義された設定が含まれます。

は、設定ファイルを使用して動的なセッション作成をサポートする実装ですDynamicAcceptorSessionProviderAcceptorSessionProviderただし、AcceptorSessionProviderたとえば、データベース情報に基づいてセッションを動的に作成できるカスタムを実装することもできます。

于 2013-10-30T01:00:17.963 に答える
2

を修正して、使用するユーザーごとTargetCompIDに一意のものを送信したいと思います。SenderCompID次にSenderCompID、アクセプター構成で を に設定し*ます。SenderCompIDこれにより、すべての sを受け入れることができます。ただし、コードのどこかに、ユーザーのデータベースに対して各注文をチェックする機能が必要です。ユーザー (SenderCompID) が有効でない場合は、拒否メッセージを送信します。多くの実装では、トンネルとホワイトリストに登録された IP アドレスも使用して、不要な接続が入らないようにします。

于 2013-10-29T11:35:21.990 に答える