Processing of TestRequest (35=1) message

Imported from previous forum

Hi All,

Should processing of a TestRequest(35=1) be done upon ANY inbound message (other than garbled) or should it be done only on an explicit Heartbeat(35=0) containing the same TestReqID as in the TestRequest message?

FIXT spcification does not cleary explain the exact behavior in this case. However, it gives spec points stating that applilcation should "Track and verify that a Heartbeat with the same TestReqID is received (may not be the next message received) " - FIXT. pg 55. 

Can you confirm what the expected output of the following scenario should be based on the above clarification?

1. After 3 Heartbeat interval misses from opposing application, the server application will send a TestRequest to the opposing side.

2. Without responding to the TestRequest with an explicit Heartbeat message containing the sam TestReqID as in the TestRequest, opposing application will continue sending other inbound messages such as New Orders, normal heartbeats, etc. The session will continue. 

3. After some time, the opposing application will stop sending any messages for another 3 Heartbeat interval time period. 

4. At this point, should the expected behavior be;

a). Logout the client having not received a response (Heartbeat with same TestReqID) to the TestRequest message.

OR

b). Send a TestRquest to the opposing application having processed the previouse TestRequest upon ANY inbound message. 

Thanks,

Hiran 

Hi,

A test request is sent if there is no response from the counter party for more than one heartbeat interval. If the counter party doesn’t respond to the test request after the second heartbeat interval, a logout message is sent.

Sudhir