FIX 4.4: Heartbeat and Test Request¶
The current FIX server uses standard FIX session-level keepalive messages handled by QuickFIX:
- Heartbeat (
MsgType = 0) - Test Request (
MsgType = 1)
Heartbeat (MsgType = 0)¶
Heartbeat confirms that the FIX session is alive.
Example¶
8=FIX.4.4|9=49|35=0|34=10|49=SERVER|52=20260408-20:40:00.000|56=CLIENT_1|10=123|
Notes¶
- heartbeat interval is negotiated during
Logon - current server config uses
108=30by default - heartbeats are handled by QuickFIX automatically
Test Request (MsgType = 1)¶
Test Request is used when one side wants an immediate liveness check.
Example¶
8=FIX.4.4|9=66|35=1|34=11|49=SERVER|52=20260408-20:40:10.000|56=CLIENT_1|112=PING1|10=101|
Response¶
The peer replies with Heartbeat (35=0) and echoes 112=TestReqID.
Current Server Behaviour¶
- QuickFIX handles incoming and outgoing heartbeats
- the Node.js smoke client also auto-replies to
Test Request - these messages do not go through trading business routing
Practical Recommendation¶
Client implementations should treat session-level messages as mandatory transport mechanics and let the FIX engine handle them automatically whenever possible.