首页 > 解决方案 > 如何为每个会话设置不同的“ResetOnLogon”?

问题描述

我正在使用 QuickFixJ lib 实现通过 Fix 协议进行集成的应用程序。

将与服务提供商进行两次会议。一是需要ResetOnLogon=Y,二是ResetOnLogon=N

我试过这个配置:

[default]
FileStorePath=target/data/barxfx
BeginString=FIX.4.2
ConnectionType=initiator
SocketConnectHost=123.123.123.123
StartTime=00:00:00
EndTime=00:00:00
HeartBtInt=120
ReconnectInterval=120
TimeStampPrecision=SECONDS

[session]
SenderCompID=A-PRICES-TEST
TargetCompID=B-PRICES-TEST
SocketConnectPort=62345
ResetOnLogon=Y
ResetOnDisconnect=Y

[session]
SenderCompID=A-TRADES-TEST
TargetCompID=B-TRADES-TEST
SocketConnectPort=62346
ResetOnLogon=N
ResetOnDisconnect=N

初始化代码:

 InputStream inputStream = getClass().getResourceAsStream("/testfix.cfg");

SessionSettings settings = new SessionSettings(inputStream);
inputStream.close();

Application application = new QuickFixApplication();

MessageStoreFactory messageStoreFactory = new FileStoreFactory(settings);

LogFactory logFactory = new SLF4JLogFactory(settings);

MessageFactory messageFactory = new quickfix.fix42.MessageFactory();

SocketInitiator initiator = new SocketInitiator(application, messageStoreFactory, settings, logFactory, messageFactory);
initiator.start();

但它不起作用 - 因为ResetOnLogon被列表中的最后一个会话覆盖,并且此设置用于两个会话。

任何想法如何自定义ResetOnLogon每个会话?

标签: fix-protocolquickfixj

解决方案


推荐阅读