Как динамически изменять файл конфигурации при использовании Quick Fix J Engine для получения сообщения?

#java #quickfixj

#java #quickfixj

Вопрос:

Я указал хост и порт в файле конфигурации вручную. Все, что я пытаюсь, это динамически изменять это значение в этом файле или есть какой-либо другой альтернативный вариант изменения имени хоста и порта в соответствии с выбором пользователя

 [DEFAULT]# Settings which apply to all the Sessions.
ConnectionType=initiator
LogonTimeout=30
ReconnectInterval=30
ResetOnLogon=Y
FileLogPath=E:eclipse_keplerWorkspaceFIX_Analyzersrcsimulatorlogs.txt
[SESSION]# Settings specifically for one session
BeginString=FIX.4.2
SenderCompID=THIS VALUE IS THE CLIENT ID
TargetCompID=THIS VALUE IS THE FIX SERVER ID
SocketConnectHost=192.168.15.58 
SocketLocalHost=192.168.15.58
StartDay=sunday
EndDay=friday
StartTime=00:00:00
EndTime=00:00:00
HeartBtInt=30
CheckLatency=N
MaxLatency=240
SocketConnectPort=5005
SocketConnectHost=192.168.15.58
UseDataDictionary=Y
DataDictionary=E:eclipse_keplerWorkspaceFIX_AnalyzersrcsimulatorCustomFix.xml
FileStorePath=C:WorkQuickFIXJsessioninfo
  

Комментарии:

1. Это свойство SocketConnectHost дважды появляется в вашем файле конфигурации. Почему это?

Ответ №1:

В quickfix пакете у класса SessionSettings есть конструктор для загрузки файла конфигурации.

Затем вы должны иметь возможность использовать установленные методы для изменения того, что вы хотите.

Например, изменить хост только для определенного сеанса:

 final SessionSettings ss = new SessionSettings( "session.cfg" );

for( final Iterator<SessionID> i = ss.sectionIterator(); i.hasNext(); ) {
    final SessionID id = i.next();
    if( id.getSenderCompID().startsWith("quote") )
        ss.setString( id, "SocketConnectHost", "123.101.202.010" );
}