Skip to content

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);
    }
}