#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" );
}