Я реализую приложение для интеграции по протоколу Fix, используя QuickFixJ lib.
Будет два сеанса с поставщиком услуг. Сначала нужно 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
за сеанс?