FIX Antenna™ Java supports FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0
SP1, 5.0 SP2, FIXML and FAST. Support for FIX Antenna Java FIX
engine includes upgrades to the latest FIX and FAST protocol
version. High availability is included as a standard.
The key benefits: runs everywhere, natively integrates with
standard Java monitoring toolsets, can be used in an enterprise
environment and web-based solutions. This allows maintaining a
consistent interface for all internal applications while dealing
with many counterparties and cross asset classes where different
versions of the protocol are in use. Furthermore, FIX Antenna Java
comes with a rich UI for
monitoring session statuses and parameters in real time.
|High performance / low latency
- Delivers over 50,000 messages per second with
persistence and over 150,000 messages per second without
- Adds 11 microseconds to latency in average for sending messages
and up to 4 microseconds to latency in average for reading with
- Adds up to1microsecond to latency in average for sending
messages and up to 3.5 microseconds to latency in average for
reading without persistence.
Please refer to the latest benchmarks of FIX Antenna Java,
Windows- and Linux-based.
|Supports standard FIX
- 100% FIX standard compliance:
- FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2
- FAST 1.1
- Supports all FIX message types (pre-trade, trade, post-trade,
market data, etc.)
- Supports user-defined tags
- Message validation (wellformness, required and conditionally
required fields, fields order, types, etc.)
- Customizable FIX protocol. Create your own FIX dialect e.g.
defined extra field for a message, change "required" attribute,
etc. in a friendly XML format (compatible with FIX Antenna C++ and
- Multiple session management
- Supports up to 200 concurrent sessions on a single instance on
recommended hardware. Number of concurrent sessions can be
increased if more CPUs are added
- Each session can be configured separately
- Guaranteed delivery
- Relies on the store and forward technique
- Flat files are used for persistence to achieve maximum
- Standard FIX routing based on DeliverTo and OnBehalfOf
- FIX to FIXML converter
- FIXML to FIX converter
- Support FIX 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.0 SP1, 5.0 SP2
- Later delivery mode allows unsent messages to be stored in
queue and delivered later when connection is re-established.
Recommended configuration for a session, where execution reports
are to be delivered e.g. session with traders
- Rejecting mode allows messages, which cannot be sent during
some reasonable time (customizable), to be rejected. Recommended
configuration for a session, where orders are to be delivered e.g.
session with exchanges
|Highly customizable FIX session level
- Highly customizable logic of messages processing
- Ability to create custom handler for any type of message
- Ability to add custom pre-processing of messages before they
will be handled by FIX Antenna
|Reliability vs. performance
- Supports transient sessions, which do not use any persistence.
This significantly increases performance giving up recovery.
Applicable when recovery is not required (e.g. for market data) or
when persistence is done by the application, which uses the FIX
- Supports memory-mapped file storage which is faster than
storage based on RandomAccessFile in most cases. The weak point of
MMF storage is that it can have an additional penalty for remapping
- Ability to enable or disable Nagle's algorithm to minimize
latency or maximize throughput
- Ability to manipulate the internal queue size to get maximum
throughput (process messages in butch) or lower latency (minimal
time in queue)
- Ability to use different levels of message validation to
balance between reasonable correctness and good performance:
- Wellformness validation
- Validation of allowed message fields
- Validation of required message fields
- Validation of message fields order
- Validation of duplicated message fields
- Validation of field values according to defined data types
- Validation of repeating group fields
- Conditionally required fields
- Ability to build template message and send it many times with
different values. Sending of such prepared messages will be faster
in most cases.
- Ability to choose sending mode. Synchronous sending gives lower
latency, but asynchronous is preferable for getting a better
- Supports configuration in XML and properties file format.
- Ability to configure default behavior and custom sessions in
the same configuration file.
|Monitoring and administration
- Built-in remote monitoring and administrative interface for
sessions monitoring and management
- Public API to override and/or extend existing administrative
- Rich monitoring and
administration GUI out of the box
|Message composition API
- Provides the following functionality:
- Creating a message singleton by FIX protocol version and
- Creating a message from a raw FIX string (parse)
- Serializing a FIX object message to raw FIX string
- Adding, removing, modifying FIX fields and repeating
- Validating message
- Ability of internal pooling to reduce memory allocations
- FIX flat message model - generic model to work with the
abstract FIXMessage class via fields and groups getters and
setters, which gives the highest performance
- FIX object model - each FIX message type is a class with FIX
fields as members, using intellisense to make working with FIX
business object more pleasant
- Prepared messages - message template for faster sending
messages with the same structure but with different values
|Integration with JMS
- Has customizable adapter for communicating with JMS servers. It
provides API for easy sending/receiving FIX messages from/to
- Included standalone FIX-to-JMS server for routing messages
between FIX and JMS environments
- SSL tunneling for transport
- Standard FIX authorization utilizing username and password
fields in FIX Logon message
- Strategies for accepting incoming sessions:
- Auto-accept incoming sessions (to simplify development and
- Auto-decline non pre-configured sessions
- The minimal FIX application size could be about 200K and it
will not include 3rd parties libraries
Each package consists of:
full list of packages available for FIX Antenna Java.
|Supports all popular environments
Our latest FIX Antenna Java engine (v. 2) is built on over a
decade of FIX market experience, thorough understanding of the
current market structure and future trends. We also took into
account the feedback from our clients. The current release of the
FIX library adds extra reliability for operating in the most
demanding low latency environments.
The transport layer of FIX Antenna Java is built using Message
Queues with priorities. This allows processing of the system
messages even in high load applications.
The logic of the FIX session layer is built using Chain of
Responsibility Pattern. There is a chain of the system and user
defined handlers, which check the message for validity, right
number sequence, etc. Such approach enables greater flexibility. It
allows to incorporate custom logic into any place of this chain and
easily adapt the application behavior to any requirements.
During the persistent session the messages will also be stored
after processing. The incoming messages will be saved after the
normal processing by all handlers and user application, while the
outgoing messages will be saved after they are sent to
counterparties. This assures that every single message will be
FIX Antenna Java provides the following main APIs for trading
- Create multiple FIX sessions (initiators and acceptors)
- Open and close FIX session
- Form FIX message
- Validate FIX message
- Send and receive FIX messages
- Convert FIX messages to/from FIXML
- Route FIX messages to/from JMS
- Work with FAST stream
- Set sequence numbers
See the full list of FIX
Antenna Java APIs.
Advanced FIXAJ Samples
||Demonstrates how to check a message for compliance with FIX 4.4
using FIX Antenna Validation module.
||Demonstrates how to check a message for compliance with FIX 5.0
using FIX Antenna Validation module.
||Demonstrates how to customize validation in case of using
customized FIX protocol.
||Demonstrates a simple way of converting a string with a FIX
message into its FIXML representation.
||Demonstrates how to convert a string with a FIX message into
its FIXML representation with custom XML processing.
||Demonstrates a simple way of converting a string with an FIXML
message into its FIX representation.
||Demonstrates how to convert a string with an FIXML message into
its FIX representation with custom XML processing.
||Demonstrates how to decode a FAST message and get a FIX
||Demonstrates how to encode a FIX message into FAST.
||Demonstrates how to connect to the FAST server and receive
messages from it. Built as a simple command line tool.
||Demonstrates how to send and receive FIX messages via JMS
||Demonstrates how to send and receive FIX messages via JMS
Adaptor. FIXJMSAdvancedAdaptor hides the JMS queues access and
makes it easier to initialize the adaptor.
FIXAJ Light - FIX engine with a minimal
footprint. This package can be used in products which have strict
limitations for their size.
FIXAJ Full - A fully functional FIX engine.
FIXAJ Add-ons - Validation and Message Object
Model for FIX Antenna Light.
ICE Adaptor - FIX Antenna Solution for ICE
Trade Capture. This package contains console and GUI tools for
communicating with ICE Trade Capture interface.
FIXML Convertor - A set of FIX Antenna related
libraries for converting FIX to FIXML and back.
Fast Engine - The functional core for
CME Fast Adaptor - A fully functional
application for communicating with CME.
JMS Adaptor - An adaptor which helps link FIX
Antenna with the Java Message Service. The package also contains a
server for routing FIX messages to and from JMS server.
Download FIX engine
Download FIX Antenna Java v2.10.20
We offer cost effective
licensing models. They are based on application process
concurrency limits, level of support (business hours only, 24x5/7),
etc. Also Site licenses, OEM licensing models, as well as discounts
based on number of purchased licenses are available. Development,
test and back-up licenses are licensed separately. Cost of such
licenses is 50% from listed price of production license.