2011-10-11 4 views
0

내 QuickFIX 클라이언트가 매일 로그인하기 전에 로그 아웃을 보내고 있습니다. 로그인 전에이 로그 아웃 메시지를 보내지 않도록 할 수 있습니까? .. 그리고 다음 나는 매일 얻을 로그 메시지Quickfix 세션 설정 : 초 기자에서 로그온하기 전에 로그 아웃 전송

[default] 
FileStorePath=/home/quickfix/crons/exe/quickfix/filestore 
ConnectionType=initiator 
SenderCompID=TN7_42 
TargetCompID=EMS 
SocketConnectHost=xxxxx 
TimeZone=Asia/Tokyo 
StartTime=07:50:00 Asia/Tokyo 
EndTime=20:00:00 Asia/Tokyo 
HeartBtInt=30 
ReconnectInterval=5 
CheckLatency=N 
UseLocalTime=Y 

[session] 
BeginString=FIX.4.2 
SocketConnectPort=12061 
ResetOnLogon=Y 
ResetOnLogout=Y 
ResetOnDisconnect=Y 
RefreshOnLogon=N 

됩니다 :

다음은 내가 지금 사용하고있는 설정이다

Oct 11, 2011 7:56:00 AM quickfix.SessionSchedule <init> 
INFO: [FIX.4.2:TN7_42->EMS] daily, 22:50:00-UTC - 11:00:00-UTC 
<20111010-22:56:00.820, FIX.4.2:TN7_42->EMS, event> (Session FIX.4.2:TN7_42->EMS schedule is daily, 22:50:00-UTC - 11:00:00-UTC) 
<20111010-22:56:00.821, FIX.4.2:TN7_42->EMS, event> (Session state is not current; resetting FIX.4.2:TN7_42->EMS) 
<20111010-22:56:00.821, FIX.4.2:TN7_42->EMS, event> (Created session: FIX.4.2:TN7_42->EMS) 
Oct 11, 2011 7:56:00 AM quickfix.mina.NetworkingOptions logOption 
INFO: Socket option: SocketTcpNoDelay=true 
Oct 11, 2011 7:56:00 AM quickfix.mina.NetworkingOptions logOption 
INFO: Socket option: SocketSynchronousWrites=false 
Oct 11, 2011 7:56:00 AM quickfix.mina.NetworkingOptions logOption 
INFO: Socket option: SocketSynchronousWriteTimeout=30000 
Oct 11, 2011 7:56:00 AM quickfix.mina.initiator.IoSessionInitiator <init> 
INFO: [FIX.4.2:TN7_42->EMS] [/xxxxx:12061] 
Oct 11, 2011 7:56:00 AM quickfix.mina.SessionConnector startSessionTimer 
INFO: SessionTimer started 
Oct 11, 2011 7:56:00 AM quickfix.mina.initiator.InitiatorIoHandler sessionCreated 
INFO: MINA session created for FIX.4.2:TN7_42->EMS: local=/xxxxx:48477, class org.apache.mina.transport.socket.nio.SocketSessionImpl, remote=/xxxxx:12061 
<20111010-22:56:01.860, FIX.4.2:TN7_42->EMS, outgoing> (8=FIX.4.2^A9=52^A35=5^A34=1^A49=TN7_42^A52=20111010-22:56:01.859^A56=EMS^A10=085^A) 
Oct 11, 2011 7:56:01 AM quickfix.Session disconnect 
INFO: [FIX.4.2:TN7_42->EMS] Disconnecting: Session reset 
Oct 11, 2011 7:56:05 AM quickfix.mina.initiator.InitiatorIoHandler sessionCreated 
INFO: MINA session created for FIX.4.2:TN7_42->EMS: local=/xxxxx:48478, class org.apache.mina.transport.socket.nio.SocketSessionImpl, remote=/xxxxx:12061 
<20111010-22:56:06.844, FIX.4.2:TN7_42->EMS, outgoing> (8=FIX.4.2^A9=70^A35=A^A34=1^A49=TN7_42^A52=20111010-22:56:06.844^A56=EMS^A98=0^A108=30^A141=Y^A10=166^A) 
<20111010-22:56:06.845, FIX.4.2:TN7_42->EMS, event> (Initiated logon request) 
<20111010-22:56:06.847, FIX.4.2:TN7_42->EMS, incoming> (8=FIX.4.2^A9=179^A35=5^A49=EMS^A56=TN7_42^A34=1^A43=N^A52=20111010-22:56:06.846^A58=Catastropic Error: Incoming sequence number (1) is less than expected (2) without PossDupFlag being set. Logging out.^A10=226^A) 
Oct 11, 2011 7:56:06 AM quickfix.Session disconnect 
INFO: [FIX.4.2:TN7_42->EMS] Disconnecting: IO Session closed 
<20111010-22:56:06.849, FIX.4.2:TN7_42->EMS, error> (quickfix.SessionException Logon state is not valid for message (MsgType=5)) 
<20111010-22:56:06.849, FIX.4.2:TN7_42->EMS, event> (Already disconnected: Verifying message failed: quickfix.SessionException: Logon state is not valid for message (MsgType=5)) 
<20111010-22:56:10.887, FIX.4.2:TN7_42->EMS, error> (java.net.ConnectException: java.net.ConnectException: Connection refused(Next retry in 5000 milliseconds)) 
<20111010-22:56:15.898, FIX.4.2:TN7_42->EMS, error> (java.net.ConnectException: java.net.ConnectException: Connection refused(Next retry in 5000 milliseconds)) 

답변

0

수신 순서 번호가 예상보다 적은

이렇게 말합니다. FIX 메시지에서 수락 자에게 전송되는 시퀀스 번호는 수락 자에서 예상되는 다른 일련 번호를 가지므로 강제 로그 오프 메시지입니다. 이는 주로 메시지를 송수신하는 동안 수락 자와 초 기자를 동기화 상태로 유지하기 위해 수행됩니다.

연결 중에 모든 시퀀스 번호를 재설정하라는 플래그가 config에 있습니다. 현재이 문제를 해결하려면 플래그를 사용하지만 원본 시퀀스 번호를 더 잘 사용하십시오. 거부 메시지에서 수신자가 예상하는 시퀀스 번호를 얻어야합니다. 시퀀스 번호를 구문 분석 한 다음 로그온 프로세스를 다시 시작하십시오.

0

조금 더 일찍 세션 종료 시간을 확인하고 로그 아웃하지 않고 애플리케이션을 종료하는 것이 아니라 종료 시간에 도달하여 실제로 로그 아웃을 보내고 있는지 확인하십시오.

1.12에는 없었던이 영역 주변의 QuickFIX에도 하나 또는 두 개의 버그가 있었으므로 이전 버전을 사용해보고 더 잘 작동하는지 확인해보십시오.

4

당신은 bug QFJ-357에 물 렸습니다. Java 프로젝트에 반대하는 경우에도 똑같은 C++ 버전에서 문제가되는 것 같습니다.

이것은 실제로 revision 2269의 수정 프로그램에 의해 C++ 용 트렁크에서 수정되었습니다.