Details
Description
We've been going through a certification process with TransactTools (http://www.openfix.net/), and encountered a different expected behaviour with sending Test Requests.
In the TransactTools test, they skip a heartbeat message and expect our quickfix engine (Ie QFJ) to send a test request:
"We suppressed our last heartbeat message.
In response we expected to receive a test request message from you within 9 seconds (30% of the HeartBeatInt field) but did not."
Seems like they expect it to be sent within HeartBeatInt+9secs. Looking at the code in SessionState.isTestRequestNeeded(), it calculates the Test Request delay as 1.5 * (HeartBeatInt + numTestRequestsSent + 1), which translates into HeartBeatInt * 1.5 (for first request) = 30 + 15secs, which is over the +9 seconds that's expected.
Is there a known spec for this formula or was it something "reasonable" but not necessarily standard? Maybe it's something we need to make configurable to satisfy different expectations form counterparties?
Moved this from a question to an RFE
will make the time interval configurable.