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:
- Installation in WildFly
- Installation in YAJSW
- Installation on Linux using packages
- FIXEdge Java with FIXICC H2: Deployment Guide
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
FIXEdge Java ver. 1.10.4 and Older
To get started, make sure your system has Java 8 or higher.
Important
Functionality was tested with Java 8. Higher versions of Java are also supported, but may require additional configuration changes.
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
FIXEdge Java ver. 1.11.0 and Later
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.
C:\usr\share\fixedgej\conf>ls -la total 39 drwxr-xr-x 1 root root 8192 Apr 4 15:30 . drwxr-xr-x 1 root root 4096 Apr 4 15:25 .. -rw-r--r-- 1 root root 3280 Mar 24 14:20 cluster.xml (1) -rw-r--r-- 1 root root 1462 Mar 24 14:20 sysconf/fej-context.xml (2) -rw-r--r-- 1 root root 1273 Mar 24 14:20 sysconf/fej-jms.xml (3) -rw-r--r-- 1 root root 2562 Mar 24 14:20 sysconf/fej-monitoring.xml (4) -rw-r--r-- 1 root root 2745 Mar 24 14:20 sysconf/fej-replication.xml (5) -rw-r--r-- 1 root root 2837 Apr 3 20:36 sysconf/fej-routing.xml (6) -rw-r--r-- 1 root root 1655 Mar 24 14:20 sysconf/fej-scheduling.xml (7) -rw-r--r-- 1 root root 2502 Mar 24 14:20 sysconf/fej-security.xml (8) -rw-r--r-- 1 root root 1764 Mar 24 14:20 sysconf/fej-server.xml (9) -rw-r--r-- 1 root root 2122 Mar 24 14:20 fixedge.properties (10) -rw-r--r-- 1 root root 659 Mar 24 14:20 fixengine.properties (11) -rw-r--r-- 1 root root 3196 Mar 24 14:20 jms-adaptor.properties (12) -rw-r--r-- 1 root root 1298 Mar 24 14:20 log4j2.xml (13) drwxr-xr-x 9 root root 4096 Apr 4 15:25 reject (14) -rw-r--r-- 1 root root 3782 Apr 4 14:07 replication.properties (15) -rw-r--r-- 1 root root 313 Mar 24 14:20 rules.groovy (16) -rw-r--r-- 1 root root 287 Mar 24 14:20 schedules.xml (17) drwxr-xr-x 3 root root 0 Apr 4 15:25 session (18) -rw-r--r-- 1 root root 383 Mar 24 14:20 shell.properties (19) -rw-r--r-- 1 root root 30 Mar 24 14:20 users.properties (20) -rw-r--r-- 1 root root 10835 Mar 24 14:20 wrapper.conf (21)
- Hazelcast cluster configuration. See Cluster Service.
- Main Spring application context.
- JMS related beans. See JMS Transport Adapter.
- JMX and SSH related beans.
- Replication-related beans.
- Routing related beans.
- Scheduler configuration.
- Spring Security configuration. See Security configuration.
- FIX server configuration.
- FEJ configuration properties.
- FIXAJ configuration properties. See FIX Antenna Java configuration.
- JMS adaptor configuration properties. See JMS Transport Adapter.
- Logging configuration. See Logging configuration.
- Directory with templates for FIX reject messages
- Replication service configuration. See Replication Service.
- Custom routing rules go here. See Routing Rules.
- Custom scheduler tasks go here.
- Directory with session configuration. See FIX Session configuration.
- Remote shell configuration. See Administrative shell configuration.
- Properties file containing users for in-memory authentication. See In-Memory Authentication.
- Wrapper configuration. See Wrapper configuration.
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
- 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.
- Run FIXEdge Java as a console application
- Go to the B2BITS\fixedgej-x.x.x\bat\ and run the 'runConsole.bat' script.
- Go to the B2BITS\fixedgej-x.x.x\bat\ and run the 'runConsole.bat' script.
Steps for Linux
- 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.
- 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
- Stop FIXEdge Java service with the script
- Go to the B2BITS\fixedgej-x.x.x\bat\ and run the 'stopService.bat' script as Administrator.
- Stop FIXEdge Java service with Windows Services
- Go to Administrative tools --> Services. Find FIXEdgeJava service and select 'Stop' option in the context menu.
- The console version of FIXEdge Java can be stopped by pressing “Ctrl+C” keys combination.
Steps for Linux
- 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.
- 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 FIXEye. FIXEye 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
- How to update license files
- How to configure Echo between FIXEdge Java and Simple Client
- FIXEdge Java Administration
- Monitoring and management using remote shell
- FIX Session management
- FIXICC & FEJ Integration User Guide
- "How to" instructions