FIXEdge Java 1.10.4 and Older: Installation on Linux using packages

Prerequisites

The minimum recommended version of RHEL is 7 or higher

Installation

  1. First of all, download the FEJ distribution. The recent version of the packages is available at https://clientspace.b2bits.com/
    The packages names look like:
    • RHEL package: fixedge-java-1.8.0.268-1.el7.x86_64.rpm 
    • Debian package: fixedge-java_1.8.0.268_amd64.deb.
  2. To install the package on RHEL, run the following command as a root or using sudo (installation requires superuser permissions):

    yum install ./fixedge-java-1.8.0.268-1.el7.x86_64.rpm

    To install the package on Ubuntu, run the following command (installation requires superuser permissions):

    sudo apt install ./fixedge-java_1.8.0.268_amd64.deb
  3. The FIXEdge Java package has the following structure:

    DirectoryPurpose
    /etc/fixedge-java Configuration files
    /etc/fixedge-java/spring Custom Spring configuration, initially it is empty
    /usr/lib/fixedge-java/<VERSION> FIXEdge Java binaries 
    /usr/lib/fixedge-java/<VERSION>/sysconf Default Spring configuration
    /usr/share/doc/fixedge-java Documentation and examples
    /var/log/fixedge-java Application logs
    /var/lib/fixedge-java Application state: FIX sessions logs
  4. Copy the license file (fixaj2-license.bin) to the configuration directory (/etc/fixedge-java).
  5. The installation creates the fixedge-java group. So if it's required to get access to the logs or configuration from another user, the user should be added to the fixedge-java group.
    On RHEL it can be done with the command:

    sudo usermod <user> –a –G fixedge-java

    Make sure that the license file is also accessible by the fixedge-java group.

Running FIXEdge Service

The package provides the systemd unit to control the FEJ service.

The service runs as a dedicated fixedge-java user. The following commands can be used to control the service:

ActionCommand
Startsystemctl start fixedge-java 
Stopsystemctl stop fixedge-java 
Restartsystemctl restart fixedge-java 
View statussystemctl status fixedge-java 
Enable start at system bootsystemctl enable fixedge-java 
Disable start at system bootsystemctl disable fixedge-java 

On RHEL systems, a member of the fixedge-java group can control the service on  Ubuntu using sudo to gain root access as required. For example:

$ sudo systemctl start fixedge-java
$ sudo systemctl status fixedge-java
● fixedge-java.service - FIXEdge Java
   Loaded: loaded (/lib/systemd/system/fixedge-java.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-02-26 06:43:49 UTC; 4s ago
 Main PID: 31979 (java)
    Tasks: 11 (limit: 1018)
   CGroup: /system.slice/fixedge-java.service
           └─31979 /usr/bin/java -cp /etc/fixedge-java:/usr/lib/fixedge-java/1.8.0.268/* -Dspring.profiles.active=fej-standalone com.epam.fej.Application

Feb 26 06:43:51 ubuntu-18 java[31979]: file.separator = /
Feb 26 06:43:51 ubuntu-18 java[31979]: java.vendor.url.bug = http://bugreport.sun.com/bugreport/
Feb 26 06:43:51 ubuntu-18 java[31979]: sun.io.unicode.encoding = UnicodeLittle
Feb 26 06:43:51 ubuntu-18 java[31979]: sun.cpu.endian = little
Feb 26 06:43:51 ubuntu-18 java[31979]: sun.cpu.isalist =
Feb 26 06:43:51 ubuntu-18 java[31979]: 2021-02-26 06:43:51.892 [INFO ] [main] c.e.f.license - B2Bits FIX Antenna Java 2.23.1. Please call +44 20 369-58-166 to report illegal B2Bits FIX Antenna Java copy or to obtain/renew your license.
Feb 26 06:43:52 ubuntu-18 java[31979]: 2021-02-26 06:43:52.642 [INFO ] [main] c.e.c.r.ClassPathResourceLoader - Load resource:/etc/fixedge-java/replication.properties
Feb 26 06:43:52 ubuntu-18 java[31979]: 2021-02-26 06:43:52.644 [INFO ] [main] c.e.c.r.ClassPathResourceLoader - Load resource:/etc/fixedge-java/replication.properties
Feb 26 06:43:52 ubuntu-18 java[31979]: 2021-02-26 06:43:52.692 [INFO ] [main] o.s.s.c.ThreadPoolTaskScheduler - Initializing ExecutorService 'taskScheduler'
Feb 26 06:43:52 ubuntu-18 java[31979]: 2021-02-26 06:43:52.982 [INFO ] [main] c.e.f.c.StorageManager - Storage manager has been initialized
$ sudo systemctl stop fixedge-java
$ sudo systemctl status fixedge-java
● fixedge-java.service - FIXEdge Java
   Loaded: loaded (/lib/systemd/system/fixedge-java.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2021-02-26 06:44:03 UTC; 1s ago
  Process: 31979 ExecStart=/usr/bin/java -cp /etc/fixedge-java:/usr/lib/fixedge-java/1.8.0.268/* -Dspring.profiles.active=fej-standalone com.epam.fej.Application (code=exited, status=143)
 Main PID: 31979 (code=exited, status=143)

Feb 26 06:43:55 ubuntu-18 java[31979]: 2021-02-26 06:43:55.366 [INFO ] [main] c.e.f.s.ScheduleManagerImpl - Schedule task Task{name='start', timeZone='null', onLoad=true, events=null, properties=Schedules{properties=[Property{key='id', value='session2'}]}} from schedule with id: 'session2'
Feb 26 06:43:55 ubuntu-18 java[31979]: 2021-02-26 06:43:55.366 [INFO ] [main] c.e.f.s.ScheduleManagerImpl - Task 'start' in schedule 'session2' is about to run on start
Feb 26 06:43:55 ubuntu-18 java[31979]: 2021-02-26 06:43:55.366 [INFO ] [main] c.e.f.s.f.StartTaskFactory - Endpoint 'session2' is about to be started.
Feb 26 06:43:55 ubuntu-18 java[31979]: 2021-02-26 06:43:55.368 [INFO ] [main] c.e.f.s.f.StartTaskFactory - Endpoint 'session2' has been started.
Feb 26 06:43:55 ubuntu-18 java[31979]: 2021-02-26 06:43:55.369 [INFO ] [main] c.e.f.c.LeaderJob - All leader services started
Feb 26 06:44:03 ubuntu-18 systemd[1]: Stopping FIXEdge Java...
Feb 26 06:44:03 ubuntu-18 java[31979]: 2021-02-26 06:44:03,377 SpringContextShutdownHook WARN Unable to register Log4j shutdown hook because JVM is shutting down. Using SimpleLogger
Feb 26 06:44:03 ubuntu-18 systemd[1]: fixedge-java.service: Main process exited, code=exited, status=143/n/a
Feb 26 06:44:03 ubuntu-18 systemd[1]: fixedge-java.service: Failed with result 'exit-code'.
Feb 26 06:44:03 ubuntu-18 systemd[1]: Stopped FIXEdge Java.

Uninstall package

To uninstall the package on RHEL, run the following command as a root or using sudo (installation requires superuser permissions):

yum remove fixedge-java

To uninstall the package on Ubuntu, run the following command (installation requires superuser permissions):

sudo apt remove fixedge-java