The Session protocol assures client identification, sequential request processing, session state control, and the ability to restore the session after downtime.
Session Message Types
Client and server use the following administrative/session messages:
Logon (35=A): Initiates (client) or approves (server) session opening.
Logout (35=5): Initiates or approves session closing.
The Logon message initiates the connection from the client side and approves the connection if sent by the exchange.
Tag
Name
FIX Type
Req
Description
98
EncryptMethod
Int
Y
Encryption method where 0= None. Security must be guaranteed at the transport level
108
HeartBtInt
Int
Y
Heartbeat interval in seconds. Valid values are between 5s and 60s—30s is recommended. The same value is used by both parties. Value is set by the initiator and echoed back by the acceptor.
141
ResetSeqNumFlag
Boolean
N
Flag used to reset the session sequence numbers and start a new session.
Use with caution, especially during a trading session as this might lead to business data loss.
N = Use previous sequences
Y = Reset sequences (start new session)
If client cannot recover previous session, start new session with 1 and set this field to Y.
Fill Gap Mode is used during retransmission of messages missed by a client. Administrative messages and rejected business messages are not to be retransmitted. Instead a Sequence Reset message with GapFillFlag = “Y” must be used.
Tag
Name
FIX Type
Req
Description
123
GapFillFlag
String (20)
Y
Flag signalling wether to restore missed business/admin messages.
123=N: (Reset Mode) Sequence was reset, counterparty must adjust inbound sequence number
123=Y: (Fill Gap Mode) Missed messages (business messages) were gap-filled.
Default is 123=N. Derivatives exchange sends 35=4 without gap-filling missed business messages.
Test Request lets you check sequence numbers, or verify the communication line status in conjunction with a Heartbeat message.
Test Request ❮❯ HeartbeatA connection participant receiving a Test Request message must reply with a Heartbeat message and refer to the TestReqID value of the initial message.
Tag
Name
FIX Type
Req
Description
58
TestReqID
String (20)
Y
Id sent to verify communication status. Recipient returns TestReqID in Heartbeat message
A Reject message is issued by a party if an incoming FIX message is unsupported or not property formed. Rejected messages must not be resent if a Resend Request is received; instead a SequenceReset with GapFillFlag = “Y” is expected.