Heartbeat (MsgType = 0)

The Heartbeat (0) monitors the status of the communication link and identifies when the last of a string of messages was not received.

When either end of a FIX connection has not sent any data for [HeartBtInt] seconds, it will transmit a Heartbeat (0) message. When either end of the connection has not received any data for (HeartBtInt + some reasonable transmission time) seconds, it will transmit a Test Request (1) message. If there is still no heartbeat message received after (HeartBtInt + some reasonable transmission time) seconds then the connection should be considered lost and corrective action be initiated. If HeartBtInt (108) is set to zero then no regular heartbeat messages will be generated. Note that a Test Request (1) message can still be sent independent of the value of the HeartBtInt, which will force a Heartbeat (0) message.

Heartbeats issued as the result of Test Request (1) must contain the TestReqID (112) transmitted in the Test Request (1) message. This is useful to verify that the Heartbeat (0) is the result of the Test Request (1) and not as the result of a regular timeout.

Tag Field Name FIXML Req'd Comments
<Standard Message Header> Y MsgType = 0
112 TestReqID N Required when the heartbeat is the result of a Test Request (1) message.
<Standard Message Trailer> Y