Heartbeats during response to a Resend Request

Imported from previous forum

I wanted to know if a FIX application needs to continue to send heartbeats while it is responding to a resend request. I assume that it needs to respond to any test requests that are received while it is fulfilling a resend request but wasn’t sure if it should be sending heartbeats at the established heartbeat interval even if the application is sending execution reports to fulfill the resend request that was received. Any clarification is appreciated.

The heartbeat is just meant to be sent when no data is being sent at all by the FIX application to its counterparty. The fact that it is responding to a resend request means that there is no need for it to explicitly indicate that the session is still alive since that becomes superfluous.

While a resend request initiated by the FIX application is in progress - if the test request is recieved from the counterparty with a message sequence number higher than what the applciation is expecting then it will be queued as per the FIX session level state matrix. The matrix also says that if the counterparty is awaiting or processing response to test request then it should process inbound messages and reset heartbeat interval related timer when any inbound message is recieved.

The matrix also says that the primary aim of forcing the counterparty to respond back with a hearbeat (containing the test request ID) to a test request is to ensure that the opposite application is generating the hearbeat in response to the test request and not a normal timeout.

I wanted to know if a FIX application needs to continue to send heartbeats while it is responding to a resend request. I assume that it needs to respond to any test requests that are received while it is fulfilling a resend request but wasn’t sure if it should be sending heartbeats at the established heartbeat interval even if the application is sending execution reports to fulfill the resend request that was received. Any clarification is appreciated.

Thanks very much for the reply

The heartbeat is just meant to be sent when no data is being sent at all by the FIX application to its counterparty. The fact that it is responding to a resend request means that there is no need for it to explicitly indicate that the session is still alive since that becomes superfluous.

While a resend request initiated by the FIX application is in progress - if the test request is recieved from the counterparty with a message sequence number higher than what the applciation is expecting then it will be queued as per the FIX session level state matrix. The matrix also says that if the counterparty is awaiting or processing response to test request then it should process inbound messages and reset heartbeat interval related timer when any inbound message is recieved.

The matrix also says that the primary aim of forcing the counterparty to respond back with a hearbeat (containing the test request ID) to a test request is to ensure that the opposite application is generating the hearbeat in response to the test request and not a normal timeout.

I wanted to know if a FIX application needs to continue to send heartbeats while it is responding to a resend request. I assume that it needs to respond to any test requests that are received while it is fulfilling a resend request but wasn’t sure if it should be sending heartbeats at the established heartbeat interval even if the application is sending execution reports to fulfill the resend request that was received. Any clarification is appreciated.