Session-Level Messages
Establishing a connection
- Client sends server → Logon
<A>
message - Is client ResetSeqNumFlag
<141>
set toY
?- Yes, reset sequence numbers and proceed:
- Server resets the next expected client sequence number
- Server resets its own sequence number
- Server responds with ← Logon
<A>
message with reset sequence number - Client sends server → Heartbeat
<0>
- No, negotiate sequence numbers on both sides:
- Is client MsgSeqNum
<34>
value what the server is expecting?- No, value is greater than expected:
- Server responds with ← Logon
<A>
message - Server sends client ← Resend Request
<2>
- Client sends server → Sequence Reset
<4>
(GapFillFlag<123>
=Y
)
- Server responds with ← Logon
- No, value is less than expected:
- Server disconnects
- After checking what happened, client re-sends Logon
<A>
message with ResetSeqNumFlag<141>
field set toY
- Otherwise:
- server sends client ← Heartbeat
<0>
- server sends client ← Heartbeat
- No, value is greater than expected:
- Is server MsgSeqNum
<34>
value what the client is expecting?- No, value is greater than expected:
- Server responds with ← Logon
<A>
message - Client sends server → Resend Request
<2>
- If the server is unable to replay the messages due to technical reasons, it may send a Business Message Reject
<j>
message with:- BusinessRejectReason
<380>
set to0
(Other) - Text
<58>
set to"Unable to process ResendRequest. Please contact support."
- BusinessRejectReason
- If there are no issues, the server proceeds to replay the messages to the client:
- Server responds with ← message PossDupFlag
<43>
=Y
- Replay from server to client is complete
- Server responds with ← Heartbeat
<0>
- Server responds with ← message PossDupFlag
- Server responds with ← Logon
- No, value is less than expected:
- Client disconnects or sends server → Logout
<5>
- Gemini coordinates with the client to triage so the FIX connection can be re-established
- Client disconnects or sends server → Logout
- Otherwise:
- Client sends server → Heartbeat
<0>
- Client sends server → Heartbeat
- No, value is greater than expected:
- Is client MsgSeqNum
- Yes, reset sequence numbers and proceed:
- Success! Your FIX connection is established.