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?