The Heartbeat (35=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 <108>] seconds, it will transmit a Heartbeat (35=0) message. When either end of the connection has not received any data for (HeartBtInt <108> + "some reasonable transmission time") seconds, it will transmit a TestRequest (35=1) message. If there is still no Heartbeat (35=0) message received after (HeartBtInt <108> + "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 (35=0) messages will be generated. Note that a TestRequest (35=1) message can still be sent independent of the value of the HeartBtInt <108>, which will force a Heartbeat (35=0) message.
Heartbeats issued as the result of TestRequest (35=1) must contain the TestReqID <112> transmitted in the TestRequest (35=1) message. This is useful to verify that the Heartbeat (35=0) is the result of the TestRequest (35=1) and not as the result of a regular timeout.
|Component Block - <StandardHeader>||Y||MsgType = 0|
|112||TestReqID||N||Required when the heartbeat is the result of a Test Request message.|
|Component Block - <StandardTrailer>||Y|
^ character is used to represent