1

I have created a Fix application using QuickFIX/n is v1.4.0 from this http://www.quickfixn.org/download site. When I executed an application using two Pcs one as Server and Client, it gave an error:

An Existing was forcibly closed the remote host at Quickfix.SocketInitiatorThread.Read()

And Log details are:

20130814-23:23:47.828 : Created session
20130814-23:24:07.531 : FIX.4.4:Server->Client Socket Reader 6044116 accepting session FIX.4.4:Server->Client from 192.168.1.109:3300
20130814-23:24:07.531 : FIX.4.4:Server->Client Acceptor heartbeat set to 0 seconds
20130814-23:24:07.781 : Session reset: ResetOnLogon
20130814-23:24:07.796 : Sending time accuracy problem
20130814-23:24:07.812 : Message 1 Rejected: 10
20130814-23:24:07.812 : Verify failed: Tried to send a reject while not logged on
20130814-23:24:07.812 : Session FIX.4.4:Server->Client disconnecting: Verify failed: Tried to send a reject while not logged on
20130814-23:24:07.812 : Session reset: ResetOnDisconnect

We have tried for 'Sending time accuracy problem' i.e. Timestamp error. We set the time on client and server machines same and tried it but it didn't work. We also set the values of MaxLatency and CheckLatency in config file. We set MaxLatency=120 and CheckLatency=Y but it didn't solve the problem.Please can you give me solution for this issue.

The actual log messages are:

20130816-05:44:37.875 : 8=FIX.4.49=6735=A34=149=Client52=20130816-23:12:39.56256=Server98=0108=3010=223
20130816-05:44:39.437 : 8=FIX.4.49=6735=A34=349=Client52=20130816-23:12:41.40656=Server98=0108=3010=215
20130816-05:44:40.468 : 8=FIX.4.49=6735=A34=449=Client52=20130816-23:12:42.40656=Server98=0108=3010=217
20130816-06:46:02.843 : 8=FIX.4.49=7335=A34=149=Client52=20130817-00:13:43.04656=Server98=0108=30141=Y10=254
20130816-06:46:04.515 : 8=FIX.4.49=7335=A34=149=Client52=20130817-00:13:45.89056=Server98=0108=30141=Y10=007
20130816-06:46:05.515 : 8=FIX.4.49=7335=A34=149=Client52=20130817-00:13:46.89056=Server98=0108=30141=Y10=008
20130816-06:46:10.359 : 8=FIX.4.49=7335=A34=149=Client52=20130817-00:13:51.62556=Server98=0108=30141=Y10=000

Please kindly send me suggestions and settings to run this application without errors.

Iridium
  • 23,323
  • 6
  • 52
  • 74
vish.raval
  • 101
  • 3
  • 11
  • Can you include the actual FIX messages being exchanged? – Iridium Aug 16 '13 at 06:36
  • Have you tried `CheckLatency=N`? – Iridium Aug 16 '13 at 07:13
  • yes.we checked for different values.nothing worked. – vish.raval Aug 16 '13 at 07:20
  • May be worth including the config. you're using for both client and server in the question. – Iridium Aug 16 '13 at 09:21
  • client side config file is [DEFAULT] FileStorePath=store FileLogPath=log ConnectionType=initiator ReconnectInterval=60 SenderCompID=Client [SESSION] BeginString=FIX.4.4 TargetCompID=Executor StartTime=00:00:00 EndTime=00:00:00 HeartBtInt=30 SocketConnectPort=5001 SocketConnectHost=192.168.1.109 DataDictionary=FIX44.xml UseDataDictionary=Y #HttpAcceptPort=9911 LogoutTimeout=5 ResetOnLogon=Y – vish.raval Aug 16 '13 at 10:16
  • Sever side config file is [DEFAULT] FileStorePath=store FileLogPath=log ConnectionType=acceptor ReconnectInterval=60 SenderCompID=Executor [SESSION] BeginString=FIX.4.4 TargetCompID=Client StartTime=00:00:00 EndTime=00:00:00 HeartBtInt=30 SocketAcceptPort=5001 DataDictionary=FIX44.xml SocketAcceptHost=192.168.1.2 SocketReuseAddress=Y UseDataDictionary=Y ResetOnLogon=Y ResetOnLogout=Y ResetOnDisconnect=Y – vish.raval Aug 16 '13 at 10:16
  • Have you changed the config since posting the logs and FIX messages? The logs suggest your CompIDs are `Client` and `Server`, but your config suggests that the CompIDs are `Client` and `Executor`. – Iridium Aug 16 '13 at 10:49
  • we did make changes as you say. acceptor's config file is:- [DEFAULT] HeartBtInt=30 ConnectionType=acceptor SocketAcceptPort=5001 SocketReuseAddress=Y StartTime=00:00:00 EndTime=00:00:00 FileLogPath=log UseDataDictionary=Y ResetOnLogon=Y ResetOnLogout=Y ResetOnDisconnect=Y [SESSION] BeginString=FIX.4.4 SenderCompID=Server TargetCompID=Client FileStorePath=store DataDictionary=FIX44.xml – vish.raval Aug 16 '13 at 11:26
  • initiators/clients config file is :- [DEFAULT] HeartBtInt=30 ConnectionType=initiator ReconnectInterval=1 FileStorePath=store FileLogPath=log StartTime=00:00:00 EndTime=00:00:00 UseDataDictionary=Y DataDictionary=FIX44.xml HttpAcceptPort=9911 SocketConnectPort=5001 LogoutTimeout=5 ResetOnLogon=Y [SESSION] BeginString=FIX.4.4 SenderCompID=Client TargetCompID=Server SocketConnectHost=192.168.1.109 – vish.raval Aug 16 '13 at 11:29
  • possible duplicate of [quickfix/n : Connection forcibly closed by remote host at Quickfix.SocketInitiatorThread.Read()'](http://stackoverflow.com/questions/18224902/quickfix-n-connection-forcibly-closed-by-remote-host-at-quickfix-socketinitiat) – Grant Birchmeier Aug 16 '13 at 14:13
  • That question had been removed – Alex Mar 27 '14 at 16:02

1 Answers1

3

It looks like someone else answered your identical question 2 days ago, correctly identifying that the CheckLatency setting is, for whatever reason hard-coded in QuickFIX/n. In other words, it does not matter whether CheckLatency=Y or CheckLatency=N in your configuration file because it will be ignored when the configuration is loaded.

Again, as the other poster indicated, you can fix this in the QuickFIX/n source and rebuild the assembly.

The other option here is to change the Session's CheckLatency property to false in your code before the connection is initiated.

Community
  • 1
  • 1
Iridium
  • 23,323
  • 6
  • 52
  • 74
  • Actually that solution didn't solve the problem.checked for time stamp error also.but it didn't work.Any other solution?? – vish.raval Aug 19 '13 at 05:49
  • If the logs still indicate `Sending time accuracy problem` then that *is* the problem. Your solutions are therefore to fix the clock synchronisation/time-zones on your server/client, or tell QuickFIX not to check them, which has to be done in code by setting `[Session].CheckLatency = false`. – Iridium Aug 19 '13 at 08:24
  • thank you for your help.problem got solved.actually the error was in source code.thank you so much. – vish.raval Aug 22 '13 at 12:40