Как настроить «ResetOnLogon» разные для каждого сеанса? - PullRequest
0 голосов
/ 04 октября 2019

Я реализую приложение для интеграции по протоколу 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 за сеанс?

...