Kir*_*ril 5 java quickfix fix-protocol quickfixj
假设我正在运行一个基于网络的交换并且有一个新客户注册。我为该客户提供了一个新的 CompID,现在我想将该 CompID 添加到我的接受方。我是否必须重新启动我的接受器或者可以动态完成吗?
必须提前就 CompID 达成一致,然后将其粘贴到某处的配置中,这似乎不太具有可扩展性。
我见过一些据说可以做到这一点的示例,但它们似乎只是通过将配置设置为*. 还有其他方法可以做到这一点吗?
看一下DynamicAcceptorSessionProviderExecutor 示例以及它的使用方式。执行器示例从设置文件中读取会话“模板”,并将它们与接受方端点 IP 地址相关联。接受器模板由“AcceptorTemplate=true”设置标识。任何会话 ID 字段(包括 FIX 版本)都可以使用通配符,而不仅仅是 SenderCompID。
有关如何定义会话模板的示例,请参阅 executor_dynamic.cfg。在此配置中,SenderCompID 和 TargetCompID 都是通配符,并且定义了各种 FIX 版本的模板(以指定适当的数据字典文件)。
当未知会话 ID 的消息到达时,将DynamicAcceptorSessionProvider尝试将会话 ID 与模板的通配符会话 ID 进行匹配。如果找到匹配项,将自动创建新会话并将其添加到接受器,就像在设置中明确定义一样。新会话将具有接受方会话模板中定义的设置。
这DynamicAcceptorSessionProvider是一个AcceptorSessionProvider使用设置文件来支持动态会话创建的实现。但是,您还可以实现自定义AcceptorSessionProvider,例如可以根据数据库信息动态创建会话。
我认为您想要修复TargetCompID并发送一个唯一的SenderCompID供每个用户使用。然后您将SenderCompID接受器配置中的设为*。这将允许所有 s 的接受SenderCompID。但是,您需要在代码中的某个位置提供根据用户数据库检查每个订单的功能。如果用户(SenderCompID)无效,那么您将发送拒绝消息。许多实现还将使用隧道和白名单 IP 地址,以确保没有不需要的连接进入。
| 归档时间: | 
 | 
| 查看次数: | 2523 次 | 
| 最近记录: |