2014-07-07 1 views
2

구성 파일에 호스트와 포트를 수동으로 지정했습니다. 사용자 선택 quickfix 패키지에서Quick Fix J Engine을 사용하여 메시지를받는 동안 동적으로 구성 파일을 변경하는 방법은 무엇입니까?

[DEFAULT]# Settings which apply to all the Sessions. 
ConnectionType=initiator 
LogonTimeout=30 
ReconnectInterval=30 
ResetOnLogon=Y 
FileLogPath=E:\eclipse_kepler\Workspace\FIX_Analyzer\src\simulator\logs.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_kepler\Workspace\FIX_Analyzer\src\simulator\CustomFix.xml 
FileStorePath=C:\Work\QuickFIXJ\sessioninfo 
+0

속성은'SocketConnectHost'는 구성 파일에 두 번 나타납니다. 왜 그런가요? –

답변

2

에 따라 내가 노력하고있어 모든 동적으로 해당 파일에 그 값을 변경 또는 호스트와 포트 이름을 변경할 수있는 다른 대안 옵션이 있는가, 클래스 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"); 
}