FIXEdge Java 1.11.0 and Later: Quick Start Guide

 

Overview


FIX Edge Java is an application server providing FIX connectivity to multiple clients. Client applications communicate with FEJ through one of the multiple transport protocols (e.g. Simple Sockets, TIBCO, JMS, HTTPs) employing transport adaptors. It is designed to be as easy as possible to install, configure, administrate, and monitor trading information flows. It is written in Java and has a performance profile suitable for the needs of all clients up to and including large sell-side institutions and large-volume traders.

Installation

Get the License File

The FIXEdge Java license file can be obtained upon request to the Sales team. The license has an expiration date but it is possible to generate a perpetual license. License information is stored in the fixaj2-license.bin file for FIXEdge Java versions earlier than 1.10.3. Since FIXEdge Java 1.10.3 the license information is stored in the fixedgej-license.bin file. The license file is expected to be placed in the FIXEdge Java config.rootpath=./conf directory. In order to apply for a new license, it is enough to replace the current file with a newer one and restart FIXEdge Java.

Please, refer to the How to update license files article for additional information.

See in detail the step-by-step guides:

Testing

Set up the Echo Configuration to make sure that all components were deployed correctly. The test consists of sending a FIX message from FIX Client Simulator (aka Simple Client) to FIXEdge Java server and returning the same message back to Simple Client. The tool is based on .NET technologies and can be used to Simulate FIX buy and/or sell-side endpoints.

To perform the test download the FIX Client Simulator and follow the instructions from the How to configure Echo between FIXEdge Java and Simple Client article.

System Requirements

To get started, make sure your system has Java 17 or higher.

Important

Functionality was tested with Java 17.

 

$ java -version openjdk version "17.0.13" 2024-10-15 OpenJDK Runtime Environment (build 17.0.13+11-Ubuntu-2ubuntu124.04) OpenJDK 64-Bit Server VM (build 17.0.13+11-Ubuntu-2ubuntu124.04, mixed mode, sharing)

Configuration

This section will acquaint you with the basic information used during the configuration of the application.

All of the information in the configuration files is read at startup, meaning that any change to the files necessitates a restart of the application.

The 'conf' folder holds the configuration files for FEJ.

Type

Name

Description

Type

Name

Description

fixedgej-1.11.0-SNAPSHOT


Executable File

FIXEdgeJ

 

Batch File (.bat)

FIXEdgeJ.bat

 

fixedgej-1.11.0-SNAPSHOT\conf

Folder

dslSamples

Directory with examples of implementing rules using the dsl structure. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6109247/Groovy+DSL+Rules

Folder

reject

Directory with templates for FIX reject messages.

Folder

session

Directory with session configuration. See FIX Session configuration.

Folder

spring

Directory for adding spring beans via xml if necessary.

Folder

ssl

Directory contains SSL/TLS-related cryptographic files used for secure communication

File (.properties)

admin-users.properties

Spring security file format. Pass depends on configured spring PasswordEncoder (hash or plain text)
Format: username=password,grantedAuthority[,grantedAuthority][,enabled|disabled]

File (.properties)

aeron.properties_sample

An example of an aeron configuration. All available parameters can be found in the official Aeron documentation: https://github.com/real-logic/Aeron/wiki/Configuration-Options .To overwrite the defaults/customization, you need to remove the _sample extension part from the specified file

File (.xml)

cluster.xml

Hazelcast cluster configuration. See Cluster Service.

File (.properties)

fej-ha.properties

Spring configuration file when specifying a profile'fej-ha' in the startup script. Allows to configure patterns for session files, the path to the configuration directory, etc. 

File (.properties)

fej-standalone.properties

Spring configuration file when specifying a profile'fej-standalone' in the startup script. Allows to configure patterns for session files, the path to the configuration directory, etc. 

File (.properties)

fixedge.properties

FEJ configuration properties.

File (.properties)

fixengine.properties

FIXAJ configuration properties. See FIX Antenna Java configuration.

File (.properties)

fixicc-permissions.properties

 

File (.properties)

history.properties

The DataSource configuration file for history. The description of the available parameters is described in the corresponding sections on the page: https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/23822365/History+implementation+in+DSL

File (.properties)

jms-adaptor.properties

JMS adaptor configuration properties. See JMS Transport Adapter. https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6076710/Configuring+JMS+endpoints

File (.properties)

kafka-adaptor.properties

Kafka adaptor configuration properties. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6076714/Configuring+Kafka+endpoints

File (.xml)

log4j2.xml

Logging configuration. See Logging configuration.

File (.vm)

mail_message_template.vm

File to the Velocity template file for the default email converter interface. See more at Template converter properties. https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6076722/Configuring+SMTP+endpoints#ConfiguringSMTPendpoints-Usingtemplatesforemails 

File (.properties)

msg-converter.properties

Configuration properties that allows enabling/disabling FIX-to-JSON and JSON-to-FIX message conversion for WebSocket TA. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6109343/Configuring+WebSocket+endpoints

File (.properties)

replication.properties

Replication service configuration. See Replication Service.

File (.groovy)

rules.groovy

Custom routing rules go here. See Routing Rules.

File (.sample)

rules.groovy.sample

An example of routing rules implemented in groovy. 

File (.xml)

schedules.xml

Custom scheduler tasks go here.

File (.properties)

shell.properties

Remote shell configuration. See Administrative shell configuration.

File (.properties)

smtp-adaptor.properties

SMTP adaptor configuration propresties. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6076722/Configuring+SMTP+endpoints 

File (.properties)

websocket-adaptor.properties

Websocket adaptor configuration properties. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6109343/Configuring+WebSocket+endpoints

fixedgej-1.11.0-SNAPSHOT\sysconf

Folder

dsl

Directory with the implementation of the DSL 

File (.xml)

fej-camel-context.xml

Camel context spring configuration. See https://b2bits.atlassian.net/wiki/spaces/B2BITS/pages/6076719/Configuring+Camel+endpoints

File (.xml)

fej-context.xml

Main Spring application context.

File (.xml)

fej-events.xml

Events functionality related bean.

File (.xml)

fej-fixicch2-client.xml

FIXICC H2 client related beans.

File (.xml)

fej-heartbeats.xml

Heartbeats (received from FIXICC H2 and sent by FIXEdge REST API) related beans.

File (.xml)

fej-jms.xml

JMS adaptor related beans. See JMS Transport Adapter.

File (.xml)

fej-kafka.xml

Kafka adaptor related beans.

File (.xml)

fej-lbc.xml

LBC related beans.

File (.xml)

fej-metrics.xml

Prometheus metrics related beans.

File (.xml)

fej-monitoring.xml

JMX and SSH related beans.

File (.xml)

fej-msg-converter.xml

 

File (.xml)

fej-replication.xml

Replication-related beans.

File (.xml)

fej-rest-api.xml

REST API related beans.

File (.xml)

fej-routing.xml

Routing related beans.

File (.xml)

fej-scheduling.xml

Scheduler related beans.

File (.xml)

fej-security.xml

Spring Security configuration. See Security configuration.

File (.xml)

fej-server.xml

FIX server configuration.

File (.xml)

fej-service-discovery.xml

Service Discovery (Consul) related beans.

File (.xml)

fej-smtp.xml

SMTP adaptor related  beans.

File (.xml)

fej-websocket.xml

Websocket adaptor related beans.

Management

FIXEdge Java can be managed with Remote Shell and with the scripts to start/stop FIXEdge as a service/daemon. Also, there are additional options for FIXEdge for Windows.

More information about Remote Shell is presented in FIXEdge Java Administration.

Starting FIXEdge Java

Steps for Windows

  1. Run FIXEdge Java as a service in Windows Services

    • Go to Administrative tools --> Services. Find FIXEdgeJava service and select 'Start' option in the context menu.

  2. Run FIXEdge Java as a console application

    • Go to the B2BITS\fixedgej-x.x.x\bat\ and run the 'runConsole.bat' script.


Steps for Linux

  1. Run FIXEdge Java as a daemon with the script

    • Go to /home/user/B2BITS/fixedgej-x.x.x/bin and run the 'startDaemon.sh' script with sudo user rights.

  2. Run FIXEdge Java as a console application

    • Go to the /home/user/B2BITS/fixedgej-x.x.x/bin and run the 'runConsole.sh' script with sudo rights.

Stopping FIXEdge Java

Steps for Windows

  1. Stop FIXEdge Java service with the script

    • Go to the B2BITS\fixedgej-x.x.x\bat\ and run the 'stopService.bat' script as Administrator.

  2. Stop FIXEdge Java service with Windows Services

    • Go to Administrative tools --> Services. Find FIXEdgeJava service and select 'Stop' option in the context menu.

  3. The console version of FIXEdge Java can be stopped by pressing “Ctrl+C” keys combination.

 

Steps for Linux

  1. Stop FIXEdge Java daemon with the script

    • Go to /home/user/B2BITS/fixedgej-x.x.x/bin and run the 'stopDaemon.sh' script with sudo user rights.

  2. The console version of FIXEdge Java can be stopped by pressing “Ctrl+C” keys combination.

Session Management

Sessions can be configured, started, or stopped in the Remote Shell, see FIX Session management.

Analyzing Log Files with FIXEye

All log files with incoming and outgoing FIX messages can be viewed via FIXEyeFIXEye is a multi-purpose FIX session surveillance and visibility platform. 

See more about the FIX log analyzer here: FIXEye User Guide.

Useful Links

Frequently asked questions and "How to" articles can be found here: "How to" instructions