• Programmer’s Guide
  • Api Documentation
  • Basic Concepts
Show / Hide Table of Contents
  • License Agreement
  • Release Notes
  • Backgrounder
    • About FIX
    • About FIX messages
    • About FIX sessions
    • About FIX 5.0
  • Installation And Uninstallation
    • Requirements & Compatibility
    • Supported Features
    • Samples descriptions
    • Uninstallation instructions
  • Quick Start
    • Session acceptor creation
    • Session initiator creation
    • Creating new order
    • Sending order
    • Processing incoming message
    • Closing session
    • Sample application
  • Basic Concepts
    • Main components
    • FixServer description
    • IFixServerListener description
    • IFixSessionListener description
    • IFixSession description
    • Repeating Groups description
    • Message validation
  • FIX Session Acceptor
    • Create
    • Connect
    • Reject
    • Reconnect
    • Disconnect
    • Release
    • Send message
  • FIX Session Initiator
    • Create
    • Establish connection
    • Reconnect
    • Disconnect
    • Dispose
    • Send message
  • FIX Session
    • Persistent session
    • Session state
    • Sequence number handling
    • Session qualifier
  • FIX Message
    • Create
    • Get field
    • Add field
    • Set field
    • Remove field
    • Repeating group
    • User defined fields
    • Clone message
  • FIX Prepared Message
    • Create
    • Add field
    • Set field
  • Repeating Group API
    • Indexing Repeating Group
    • Working with Repeating Groups through API
    • Repeating Group Pool
    • Get Repeating Group
    • Get Entry
    • Get nested group
    • Add new Repeating Group to message
    • Add new Entry to Repeating Group
    • Remove Entry from Repeating Group
    • Leading tag self-maintaining
    • ITagList interface
    • Validation
    • Copying
    • Finishing work with Repeating Group API
  • Validation
    • Initialization
    • Validation
  • Monitoring and Administration
    • Overview
    • Response result codes
    • Supported commands
  • Recovery
    • Store-and-forward
    • Gap fill
    • Fail-over
  • Configuration
    • Global configuration
    • Server Behavior
    • Queue and Storage
    • Validation
    • Administrative plugin
    • Session’s configuration
    • Configure SeqNum fields length
    • Definition of session’s configuration via properties file
    • Definition of session’s configuration via XML file
    • Loading of session’s configuration
  • TLS Support
    • SSL/TLS configuration
    • How to define an SSL certificate
    • How to use sslPort and requireSsl configuration options
    • Configuration examples
    • Diagnostic and troubleshooting
  • Other Topics
    • Log files
    • FAQ
    • Troubleshooting

Basic concepts

Main components

The main FIX Antenna components are

  • FixServer - listens for incoming connections.
  • IFixServerListener - listener for incoming connections. The NewFixSession(IFixSession session) method is called for every new connection and session.Connect() should be called to accept a connection
  • IFixSessionListener - listener for new messages and session state changes
  • FixMessage - a list of TagValue which could be either FIX message or FIX message content
  • IFixSession - either FIX Session acceptor or initiator capable of sending/receiving messages
  • IFixSessionFactory - session factory for the initiator
  • IErrorHandler - error and warning condition listener (not required but recommended for production applications)
  • IMessageValidator - validates the current message

FixServer description

FixServer is needed to accept incoming connections. It starts to listen for incoming connections after the Start() method. After theStop() method the server stops listening but the application does not stop until all sessions are disconnected. To be able to accept incoming sessions, IFixServerListener should be set.

IFixServerListener description

void NewFixSession(IFixSession session) is executed for every new connection. If session.Connect() is not called in this method then connection is rejected. To process messages call session.SetFixSessionListener(IFixSessionListener listener).

IFixSessionListener description

Contains two methods:

  • void OnSessionStateChange(SessionState sessionState) - called when session state is changed
  • void OnNewMessage(FixMessage message) - called for every incoming application message

IFixSession description

The FIX session is represented by the IFixSession interface. This interface is responsible for:

  • Managing the session state
  • Sending outgoing application-level messages

Each session incapsulates a message storage that is used to store the sent and received messages and a queue. A session could be configured to use memory or files on disk to store/queue messages. File storage is reliable and fault tolerant. Memory storage is much faster, but not fault tolerant.

Repeating Groups description

A FIX message may contain repeating groups. Each group contains:

  • Leading tag, which contains the number of repeating group entries.
  • Repeating group entries.
  • At least one tag is required for each entry. That is always the 1st tag in the entry that plays the role of entries separator.

Repeating groups are usually addressed by a leading tag.

To access fields inside a repeating group it is required to get a field value specifying entry number. Entries are enumerated starting from 1.

Note: FixMessage contains a convenient method Split(int repeatingGroupLeadingTagNumber), that splits a repeating group and provides the list of FixMessage for that repeating group.

Message validation

The IFixSession.GetMessageValidator() method returns IMessageValidator that could be used to validate a message. It could be used to validate both message content

IValidationResult ValidateContent(string msgType, FixMessage content);

and an entire FIX message

IValidationResult Validate(FixMessage message);
In This Article
  • Main components
  • FixServer description
  • IFixServerListener description
  • IFixSessionListener description
  • IFixSession description
  • Repeating Groups description
  • Message validation
Back to top Generated by DocFX