How to free TCP buffer in QuickFix?
After subscribing to MarketDataRequest
, i'm able to receive quotes for a while. But after an hour or so, the price stream drops. Broker support response to the issue is:
we disconnected the client becau开发者_JAVA百科se we were not able to push updates to the client as their TCP buffer is full - this could be due to network drop or application stopped consuming on their side and their receive buffer got full and stopped sending TCP acks.
How do I free TCP buffer in QuickFix?
(Using QuickFix.NET v4.2)
You have misunderstood their analysis of your problem. What they are trying to tell you is that they observed your end of the TCP connection as being unable to receive additional data because its (operating system or network card) buffer was full. This means they are sending faster than you are receiving. It could also be that your network connection is flaky, or is being throttled by one of your providers (especially if you are doing this via the internet or any line which is not guaranteed-bandwidth).
To analyze the problem yourself, you could use tools like Wireshark to watch the network connection on your end and observe the packets coming and and perhaps adverse effects at the TCP level.
Maybe your code is too slow, or maybe it's getting jammed up after a while and failing to process new messages. What do you observe?
精彩评论