[This message was posted by John Prewett of Lava Trading <[email protected]> to the "General Q/A" discussion forum at http://fixprotocol.org/discuss/22. You can reply to it on-line at http://fixprotocol.org/discuss/read/c133f5e2 - PLEASE DO NOT REPLY BY MAIL.]
Hi, You should always send out a heartbeat at the appropriate moment, irrespective of whether the other end is currently in some problematic state (but still connected). If you perceive an initiator is connecting to you with an absurdly low heartbeat interval, I would recommend terminating the session in an appropriate manner, shortly after receipt of their Logon message and initiating human contact with this client to indicate the nature of the problem. Thirdly, you have hardcoded a value (12) for "some reasonable transmission time". I would recommend against this. I use a configurable percentage of the agreed heartbeat interval. Typically, because I tend to be lenient, that tends to be 100% of the heartbeat interval. The reason I am lenient is that I have found that some problematic customer applications "go to sleep" at inconvenient moments but are not actually dead. Forcing a disconnect is a drastic step, invoking recovery on both sides. Often the problematic customer application is even less good at recovery than it was at heartbeating, so I view disconnection as the absolute last resort. In most trading applications, the messages (example: executions) are going to HAVE to be delivered eventually anyway, so a disconnection (if the application is sleeping and not dead) only serves to delay that goal. I hope this helps. JohnP [You can unsubscribe from this discussion group by sending a message to mailto:[email protected]]
-- You received this message because you are subscribed to the Google Groups "Financial Information eXchange" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/fix-protocol?hl=en.
