{{Quickfixn}} SendingTime accuracy issue
Staffan Ulfberg
staffan at ulfberg.se
Wed Nov 5 09:56:46 PST 2014
Hi,
I just started testing Quickfixn, and after fixing some initial issues I
can definitely say that 1000 messages is no problem. Our test code pushes
5000 messages per second over a session and can run indefinitely (this is
on my development machine that was fast in 2007. :) ).
To find the cause of your issue, I would try to find the first error and
understand what causes it. Maybe the closed connection is the remote
detecting a timing accuracy problem as well?
In my experience timing accuracy problems happen either when the computer
clock is off (the intended cause), or that more processing than you think
takes place in the reader thread.
Look at the logged fix messages (if they are not logged add some
logging...), and compare the timestamp of the log message with the
timestamps inside the FIX messages to check if they drift apart when many
messages arrive.
Also, it could be useful to add logging for how long processing of a single
message takes. (I.e., get the time first thing in the ToApp method and then
compute the spend time and log it before returning.)
Staffan
On Wed, Nov 5, 2014 at 8:53 AM, Shamon, John <jshamon at semprausgp.com> wrote:
> Hello All,
>
> I’m using QuickFix with ICE
>
>
>
> I have been experiencing the issue with timing, latency, network traffic
> whatever you call it as in the below 2 errors.
>
> I understand that the callbacks are time sensitive,
>
> My application was crashing after receiving 20-40 trades (AE messages).
>
>
>
> Also I realized there are 4 factors
>
> 1- Overhead through the code
>
> 2- Virus scanner spamware filters
>
> 3- sTunnel
>
> 4- Resources – CPU and RAM
>
>
>
> Now here is what I changed
>
> 1- Used 8 CPU – 16 GB RAM
>
> 2- Remove the overhead (sending data to DB), to multithread process,
> so the main thread with OnMessage(s) keep going without slowing down.
>
> 3- Stopped virus scanner temporary
>
> 4- sTunnel … can’t do anything about it
>
> 5- set the Max latency to 4000 form 380
>
>
>
> After consider improving all of the above, I was able to resolve the 2
> below errors that they always happen, so now running on 100 trades (AE
> message) is pretty smooth.
>
>
>
> Now I decided to benchmark this, so I have created 1000 trades in ICE test
> market
>
> I was able to load no more than 700 trades (AE messages), then the Sending
> Time Accuracy happened again!!
>
>
>
> After that I stopped from doing any other process (like sending data over
> to DB), #1 above (completely eliminated for the sake of testing), so I did
> have nothing except the callbacks AQ AE messages and heartbeats.
>
>
>
> I failed again around 700 trades (AE) messages
>
>
>
>
>
> 1- *I’m getting the error below:*
>
> System.Net.Sockets.SocketException (0x80004005): An existing connection
> was forcibly closed by the remote host
>
> at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32
> size, SocketFlags socketFlags)
>
>
>
> 2- *Another error that I get:*
>
> SendingTime accuracy
>
>
>
>
>
> Can I say I reached the limit when I try to download bunch of AE messages
> on a snapshot- initial start as in this test?
>
> Can someone share with me how much data they can download at a time?
>
> Any other suggestions?
>
>
>
> -John
>
>
>
>
>
>
>
>
>
> _______________________________________________
> Quickfixn mailing list
> Quickfixn at lists.quickfixn.com
> http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20141105/1f081bd5/attachment-0001.htm>
More information about the Quickfixn
mailing list