Installing FIXEdge RPM package on Linux (RHEL 7+)
Introduction
FIXEdge can be installed using RPM packages on Red Hat Enterprise Linux 7 and newer and binary compatible distributions. RPM package features support for controlling FIXEdge via systemd and running under a constrained user account.
Installing FIXEdge
Add the repository file
sudo tee -a /etc/yum.repos.d/fixedge.repo << EOF
[fixedge]
name=fixedge
baseurl=https://USERNAME:PASSWORD@packages.b2bits.com/fixedge
skip_if_unavailable=true
deltarpm=0
sslverify=false
gpgcheck=0
EOFReplace the USERNAME and PASSWORD with ones received from B2BITS sales.
2. Clear the repository cache
sudo yum clean all3. Install the package
sudo yum -y install fixedge fixicc-agentIf you need to install the latest version of the package that is in the repository, just specify the package name 'fixedge'. If you need to install an earlier version you must specify the version with the name of the package, e.g. 'fixedge-6.11.0-1664.el7.x86_64'. You can also use the 'yum provides fixedge' command to find out what package versions are in the repository.
$ yum provides fixedge
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirror.datacenter.by
* extras: mirror.datacenter.by
* updates: mirror.datacenter.by
fixedge 8/8
fixedge-6.11.0-411.el7.x86_64 : FIXEdge - smart FIX message router
Repo : fixedge
fixedge-6.11.2-440.el7.x86_64 : FIXEdge - smart FIX message router
Repo : fixedge
fixedge-6.11.3-441.el7.x86_64 : FIXEdge - smart FIX message router
Repo : fixedge
fixedge-6.11.4-450.el7.x86_64 : FIXEdge - smart FIX message router
Repo : fixedge4. Add a user to the 'fixedge' group
sudo usermod -aG fixedge $(whoami)5. Copy engine.license to /etc/fixedge
sudo cp engine.license /etc/fixedge/6. Start the 'fixedge' service
systemctl start fixedge7. Check the status of the service
$ systemctl status fixedge
● fixedge.service - FIXEdge - smart FIX message router
Loaded: loaded (/usr/lib/systemd/system/fixedge.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2021-05-01 01:04:24 UTC; 21min ago
Main PID: 26149 (FIXEdge)
Tasks: 13
Memory: 49.0M
CGroup: /system.slice/fixedge.service
└─26149 /usr/lib64/fixedge/6.11.0/FIXEdge /etc/fixedge/FIXEdge.propertiesInstallation is completed.
Running FIXEdge Service
The package provides the systemd units to control the FIXEdge and FIXICC Agent services.
The services runs as a dedicated fixedge user. The following commands can be used to control the service:
Action | Command | Allowed to |
|---|---|---|
Start FIXEdge |
| members of the |
Stop FIXEdge |
| members of the |
Restart FIXEdge |
| members of the |
View status of FIXEdge |
| members of the |
Enable FIXEdge start at system boot |
| members of the |
Disable FIXEdge start at system boot |
| members of the |
Start FIXICC-Agent |
| members of the |
Stop FIXICC-Agent |
| members of the |
Restart FIXICC-Agent |
| members of the |
View status of FIXICC-Agent |
| members of the |
Enable FIXICC-Agent start at system boot |
| members of the |
Disable FIXICC-Agent start at system boot |
| members of the |
On RHEL systems, a member of the fixedge group can control the services, for example:
[max@localhost ~]$ systemctl status fixedge
● fixedge.service - FIXEdge - smart FIX message router
Loaded: loaded (/usr/lib/systemd/system/fixedge.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/fixedge.service.d
└─override.conf
Active: inactive (dead)
Dec 13 07:54:19 localhost.localdomain bash[588972]: SLF4J: Class path contains multiple SLF4J bindings.
Dec 13 07:54:19 localhost.localdomain bash[588972]: SLF4J: Found binding in [jar:file:/usr/lib64/fixedge/6.11.6/jms-ta/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Dec 13 07:54:19 localhost.localdomain bash[588972]: SLF4J: Found binding in [jar:file:/opt/apache-activemq/activemq-all-5.16.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Dec 13 07:54:19 localhost.localdomain bash[588972]: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Dec 13 07:54:19 localhost.localdomain bash[588972]: SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Dec 13 08:43:14 localhost.localdomain systemd[1]: Stopping FIXEdge - smart FIX message router...
Dec 13 08:43:15 localhost.localdomain bash[588972]: The signal waiter has been started.
Dec 13 08:43:15 localhost.localdomain bash[588972]: The signal 15 was detected.
Dec 13 08:43:15 localhost.localdomain systemd[1]: fixedge.service: Succeeded.
Dec 13 08:43:15 localhost.localdomain systemd[1]: Stopped FIXEdge - smart FIX message router.
[max@localhost ~]$ systemctl start fixedge
[max@localhost ~]$ systemctl status fixedge
● fixedge.service - FIXEdge - smart FIX message router
Loaded: loaded (/usr/lib/systemd/system/fixedge.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/fixedge.service.d
└─override.conf
Active: active (running) since Wed 2021-12-15 04:30:02 EST; 1s ago
Main PID: 916904 (FIXEdge)
Tasks: 23 (limit: 48835)
Memory: 62.5M
CGroup: /system.slice/fixedge.service
└─916904 /usr/lib64/fixedge/6.11.6/FIXEdge /etc/fixedge/FIXEdge.properties
Dec 15 04:30:02 localhost.localdomain systemd[1]: Started FIXEdge - smart FIX message router.
Dec 15 04:30:02 localhost.localdomain bash[916904]: FIXEdge 6.11.6.r463 (engine 2.28.0.r463)
[max@localhost ~]$ systemctl stop fixedge
[max@localhost ~]$ systemctl status fixedge
● fixedge.service - FIXEdge - smart FIX message router
Loaded: loaded (/usr/lib/systemd/system/fixedge.service; disabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/fixedge.service.d
└─override.conf
Active: inactive (dead)
Dec 15 04:30:05 localhost.localdomain bash[916904]: SLF4J: Class path contains multiple SLF4J bindings.
Dec 15 04:30:05 localhost.localdomain bash[916904]: SLF4J: Found binding in [jar:file:/usr/lib64/fixedge/6.11.6/jms-ta/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Dec 15 04:30:05 localhost.localdomain bash[916904]: SLF4J: Found binding in [jar:file:/opt/apache-activemq/activemq-all-5.16.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Dec 15 04:30:05 localhost.localdomain bash[916904]: SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Dec 15 04:30:05 localhost.localdomain bash[916904]: SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Dec 15 04:30:14 localhost.localdomain systemd[1]: Stopping FIXEdge - smart FIX message router...
Dec 15 04:30:16 localhost.localdomain bash[916904]: The signal waiter has been started.
Dec 15 04:30:16 localhost.localdomain bash[916904]: The signal 15 was detected.
Dec 15 04:30:16 localhost.localdomain systemd[1]: fixedge.service: Succeeded.
Dec 15 04:30:16 localhost.localdomain systemd[1]: Stopped FIXEdge - smart FIX message router.Upgrading FIXedge
If there is a newer version of the package in the repository, you can update using the following command:
sudo yum -y update fixedge fixicc-agentYou can update to a specific version if it is higher than the current one, e.g.:
$ rpm -qi fixedge | egrep '(Version|Release)'
Version : 6.11.3
Release : 441.el7
$ yum provides fixedge | grep 450
fixedge-6.11.4-450.el7.x86_64 : FIXEdge - smart FIX message router
$ sudo yum update fixedge-6.11.4-450.el7.x86_64Downgrading FIXedge
You can also downgrade the package as needed by using the following command:
sudo yum -y downgrade fixedge-6.11.3-441.el7.x86_64 To find out which version you can downgrade a package to, use the yum provides command as described in the "Installing FIXEdge C++ section".
Removing FIXedge
To remove a package, you need the following: