Session Handler
FIX Session Callback Handler
QXFIX Engine provides multiple callback handler routines that are triggered during FIX session events.
Your Initiator or Acceptor application must implement these callback handlers to:
- Receive event notifications
- Execute business logic
- Handle FIX session lifecycle
Overview
Callback handlers act as a bridge between:
- FIX Engine
- Your trading application
When an event occurs, the engine invokes the callback, allowing your application to respond accordingly.
Sections
- Available callback handler classes
- Common callback methods
- Initiator-specific callbacks
- Acceptor-specific callbacks
- FAQs
Callback Handler Classes
FixSessionHandler
- Namespace:
com.QX.FIXEngine - Base class for all handlers
- Shared by Initiator and Acceptor
FixInitiatorHandler
- Namespace:
com.QX.FIXEngine.Initiator - Derived from
FixSessionHandler - Handles Initiator-specific events
FixAcceptorHandler
- Namespace:
com.QX.FIXEngine.Acceptor - Derived from
FixSessionHandler - Handles Acceptor-specific events
Common Callback Methods
View Common Callback Methods
OnConnectionBreak
public abstract void OnConnectionBreak(FIXSession fixSession, string failReason)
Triggered when the connection with counterparty is lost.
OnSessionStateChanged
public virtual void OnSessionStateChanged(FIXSession fixSession, eSessionState sessionState)
Triggered when session state changes.
OnLogonMessage
public virtual void OnLogonMessage(FIXSession fixSession, FIXMessage message)
Triggered when Logon message is received.
OnLogoutMessage
public virtual void OnLogoutMessage(FIXSession fixSession, FIXMessage message)
Triggered when Logout message is received.
OnRejectMessage
public abstract void OnRejectMessage(FIXSession fixSession, FixMessage message, int rejectedMessageSeqNum)
Triggered on Reject message.
OnInboundWiredMessage
public virtual void OnInboundWiredMessage(FIXSession fixSession, byte[] bMessageStream)
Handles raw FIX message before parsing.
OnAdminMessage
public virtual void OnAdminMessage(FIXSession fixSession, FIXMessage message)
Handles admin messages.
OnApplicationMessage
public abstract void OnApplicationMessage(FIXSession fixSession, FIXMessage message)
Handles business messages.
OnInboundMessage
public virtual void OnInboundMessage(FIXSession fixSession, FIXMessage fixMessage)
Triggered after parsing message.
OnOutboundMessage
public virtual void OnOutboundMessage(FIXSession fixSession, FIXMessage fixMessage)
Triggered before sending message.
OnInboundMessageValidationFailed
public virtual void OnInboundMessageValidationFailed(FIXSession fixSession, FIXMessage fixMessage, FIXValidationException exp)
Triggered on validation failure.
Queue & Latency Events
- InBoundQueueSizeThresholdValueReached
- InBoundQueueThrottleValueReached
- OnInboundMessageMaximumLatencyTimeReached
OnSessionTransmissionFail
public abstract void OnSessionTransmissionFail(FIXSession fixSession, DateTime lastMessageRecvAt)
Triggered when session fails.
OnGarbledInboundMessageReceived
public virtual void OnGarbledInboundMessageReceived(FIXSession fixSession, GarbledMessageException exp)
Handles malformed FIX messages.
Initiator Callback Methods
View Initiator Callbacks
OnSessionInitialize
public abstract void OnSessionInitialize(FIXSession fixSession)
OnConnect
public abstract void OnConnect(FIXSession fixSession)
SendingLogonMessage
public virtual void SendingLogonMessage(FIXSession fixSession, FIXMessage logonMessage)
OnConnectionTimeOut
public virtual void OnConnectionTimeOut(FIXSession fixSession)
OnConnectionFailed
public virtual void OnConnectionFailed(FIXSession fixSession, string failedReason)
OnLogonTimeOut
public virtual void OnLogonTimeOut(FIXSession fixSession)
OnLogoutTimeOut
public virtual void OnLogoutTimeOut(FIXSession fixSession)
OnEnrichSessionFixMessageHeader
public virtual void OnEnrichSessionFixMessageHeader(FIXSession fixSession, FIXMessageHeader fixMessageHeader)
OnLogonMessageRejected
public virtual void OnLogonMessageRejected(FIXSession fixSession, FIXMessage message)
OnApplicationMessageNoSendDuringGapFill
public virtual void OnApplicationMessageNoSendDuringGapFill(FIXSession fixSession, List<FIXMessage> messageList)
Scheduler Events
- OnStartSessionSchedule
- OnEndSessionSchedule
Acceptor Callback Methods
View Acceptor Callbacks
OnSessionCreation
public virtual void OnSessionCreation(FIXSession fixSession)
Triggered when a new session is created after Logon validation.
FAQs
What is a callback notification?
A callback is a method triggered by the system to notify your application about events.
How to process business messages?
public override void OnApplicationMessage(FixSession fixSession, FixMessage message)
{
string msgType = message.MsgType;
switch (msgType)
{
case FixMessageTypes.NewOrder_Single_D:
ProcessNewOrderBusinessMessage(message.Body);
break;
case FixMessageTypes.OrderCancelRequest_F:
ProcessOrderCancelRequestBusinessMessage(message.Body);
break;
}
}
How to validate Logon message?
public override void OnLogonMessage(FixSession fixSession, FixMessage message)
{
string userName = message.GetFieldAsString(FixFieldTag.Username_553);
string password = message.GetFieldAsString(FixFieldTag.Password_554);
if (Validate(userName, password))
{
FixMessage logon = fixSession.GetSessionFixMessage("A");
logon.SetField(FixFieldTag.HeartBtInt_108, "30");
logon.SetField(FixFieldTag.EncryptMethod_98, "0");
fixSession.SendMessage(logon);
}
else
{
FixMessage logout = fixSession.GetLogoutMessage("Invalid password");
fixSession.SendMessage(logout);
}
}