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 |
---|---|---|
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) |
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
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.
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