Overview
This document describes two-instance FIXEdge installation on one host. Two independent sets of binaries and configs will be installed. In future, they can be updated, managed or uninstalled independently.
General single-instance FIXEdge installation procedure is described in https://kb.b2bits.com/display/B2BITS/FIXEdge+Installation+Guide and it is recommended to read it before following this procedure. Keep in mind that our example may differ from that in the one-instance installation procedure (e.g. directories names).
It is assumed that the user has no installed instances of FIXEdge. The step-by-step procedure is provided for installation from a non-customized distributive package.
Installation directories
Windows
c:\B2BITS\FIXEdge_one
c:\B2BITS\FIXEdge_two
Linux
/home/user/B2BITS/FIXEdge_one
/home/user/B2BITS/FIXEdge_two
where a user is the name of the user performing the installation
Important precaution notes before starting changes
Remember that Linux OS is case sensitive. That means that e.g. FIXEdge1.sh and FixEdge1.sh are different files.
Pay attention to port values – using one port value in several instances may lead to conflicts and failures.
Installation
Windows
- Extract distribution archive of FIXEdge to the instance 1 folder (in our test case it is B2BITS1 on c: drive). Extract distributive archive of FIXEdge to the instance 2 folder (in our test case it is B2BITS2 on c: drive)
- Put license file to 1st instance fixedge root directory (c:\B2BITS\FIXEdge_one\FIXEdge). Put license file to 2nd instance fixedge root directory (c:\B2BITS\FIXEdge_two\FIXEdge).
Edit service names in wrapper.conf file for 2nd instance for they must be different from 1st instance names.
wrapper.conf# Name of the service wrapper.ntservice.name=FIXICC - Agent FIXEdge2 # Display name of the service wrapper.ntservice.displayname=FIXICC - Agent FIXEdge2
Change port values in configuration files (see example in How to install two instances of FIXEdge on one host)
parameter
configuration file
ListenPort
engine.properties
Monitoring.ListenPort
engine.properties
ControlCentre.XMLSockMonitor.Port
FIXEdge.properties
AgentServerPort
agent.properties
Open cmd.exe as Administrator and run the following scripts
C:>\B2BITS\FIXEdge_one\FIXEdge\fixicc-agent\bat>installService.FIXEdge1.bat C:>\B2BITS\FIXEdge_one\FIXEdge\fixicc-agent\bat>startService.FIXEdge1.bat C:>\B2BITS\FIXEdge_one\FIXEdge\bin\FIXEdge1.install.cmd
- Edit the following files for 2nd instance
In B2BITS\FIXEdge_two\FIXEdge\FIXEdge1\conf\FIXEdge.properties file set parameter ServiceName=FIXEdge2
In B2BITS\FIXEdge_two\FIXEdge\FIXEdge1\bin\FIXEdge1.install.cmd change FIXEdge.FIXEdge1 to FIXEdge.FIXEdge2
In B2BITS\FIXEdge_two\FIXEdge\FIXEdge1\bin\FIXEdge1.service.run.cmd change FIXEdge.FIXEdge1 to FIXEdge.FIXEdge2
In B2BITS\FIXEdge_two\FIXEdge\FIXEdge1\bin\FIXEdge1.service.stop.cmd change FIXEdge.FIXEdge1 to FIXEdge.FIXEdge2
In B2BITS\FIXEdge_two\FIXEdge\FIXEdge1\bin\FIXEdge1.uninstall.cmd change FIXEdge.FIXEdge1 to FIXEdge.FIXEdge2 Open cmd.exe as Administrator and run the following scripts
C:>\B2BITS\FIXEdge_two\FIXEdge\fixicc-agent\bat>installService.FIXEdge1.bat C:>\B2BITS\FIXEdge_two\FIXEdge\fixicc-agent\bat>startService.FIXEdge1.bat c:>\B2BITS\FIXEdge_two\FIXEdge\bin\FIXEdge1.install.cmd
- You can connect to the server and start the server in FIXICC in the same manner as for one-instance case (for details see https://kb.b2bits.com/display/B2BITS/FIXEdge+Installation+Guide)
If everything is OK you can see services for both instances running
In FIXICC GUI you can see both servers started
Linux
1. Extract distribution archive of FIXEdge to the instance 1 folder /home/user/B2BITS/FIXEdge_one. Extract distribution archive of FIXEdge to the instance 2 folder /home/user/B2BITS/FIXEdge_two.
2. Put license file to 1st instance fixedge root directory /home/user/B2BITS/FIXEdge_one/FIXEdge. Put license file to 2nd instance fixedge root directory /home/user/B2BITS/FIXEdge_one/FIXEdge.
3. Edit B2BITS/FIXEdge_two/FIXEdge/fixicc-agent/conf/wrapper.conf (change service names)
#******************************************************************** # Wrapper Windows Service and Posix Daemon Properties #******************************************************************** # Name of the service wrapper.ntservice.name=FIXICC_Agent_Server2 # Display name of the service wrapper.ntservice.displayname=FIXICC - AgentServer2
4. Change port values in configuration files (see example in Example Configuration used for testing)
parameter | configuration file |
---|---|
ListenPort | engine.properties |
Monitoring.ListenPort | engine.properties |
ControlCentre.XMLSockMonitor.Port | Fixedge.properties |
AgentServerPort | agent.properties |
4. run scripts
$>/home/user/B2BITS/FIXEdge_one/FIXEdge/fixicc-agent/bin/installDaemon.sh $>/home/user/B2BITS/FIXEdge_one/FIXEdge/fixicc-agent/bin/startDaemonNoPriv.sh $>/home/user/B2BITS/FIXEdge_two/FIXEdge/fixicc-agent/bin/installDaemon.sh $>/home/user/B2BITS/FIXEdge_two/FIXEdge/fixicc-agent/bin/startDaemonNoPriv.sh
Use ps -ef command to find processes corresponding to fixicc agent servers.
5. You can connect to the server and start the server in FIXICC in the same manner as for one-instance case (for details see https://kb.b2bits.com/display/B2BITS/FIXEdge+Installation+Guide)
If everything is OK you can see servers started in FIXICC GUI (on the picture below you can see our test case example. First two string correspond to windows case and last two strings show two Linux fixedge instances running)
Example Configuration used for testing
Two-instance configuration has been prepared and tested
Test case 1.
Windows 10
FIXEdge-6.6.0.12-FA-2.25.0.24-Windows-vc14-x64.zip installation package
FIXICC GUI application running on the same windows machine
Test case 2.
Linux CentOS7
FIXEdge-6.6.0.12-FA-2.25.0.24-Linux-2.6.32-gcc-7.3.1-x86_64.tar.gz installation package
FIXICC GUI application running on the windows machine
Port configuration
parameter | configuration file | FIXEdge1 windows | FIXEdge2 | FIXEdge1 | FIXEdge2 |
---|---|---|---|---|---|
ListenPort | engine.properties | 8901 | 8911 | 8901 | 8911 |
Monitoring.ListenPort | engine.properties | 8803 | 8813 | 8803 | 8813 |
ControlCentre.XMLSockMonitor.Port | FIXEdge.properties | 8902 | 8912 | 8902 | 8912 |
AgentServerPort | agent.properties | 8903 | 8913 | 8005 | 8006 |
Uninstall
If you wish to uninstall both instances of FIXEdge you should do the following steps depending on what operating system you are running
Windows
1. Open cmd.exe as Administrator and run scripts
C:\B2BITS\FIXEdge_one\FIXEdge\fixicc-agent\bat\stopService.FIXEdge1.bat C:\B2BITS\FIXEdge_one\FIXEdge\fixicc-agent\bat\uninstallService.FIXEdge1.bat C:\B2BITS\FIXEdge_two\FIXEdge\fixicc-agent\bat\stopService.FIXEdge1.bat C:\B2BITS\FIXEdge_two\FIXEdge\fixicc-agent\bat\uninstallService.FIXEdge1.bat C:\B2BITS\FIXEdge_one\FIXEdge\bin\FIXEdge1.uninstall.cmd C:\B2BITS\FIXEdge_two\FIXEdge\bin\FIXEdge1.uninstall.cmd
2. Remove B2BITS\FIXEdge_one and B2BITS\FIXEdge_two folders recursively
Linux
1. run scripts
$>/home/user/B2BITS/FIXEdge_one/FIXEdge/fixicc-agent/bin/stopDaemonNoPriv.sh $>/home/user/B2BITS/FIXEdge_one/FIXEdge/fixicc-agent/bin/uninstallDaemon.sh $>/home/user/B2BITS/FIXEdge_two/FIXEdge/fixicc-agent/bin/stopDaemonNoPriv.sh $>/home/user/B2BITS/FIXEdge_two/FIXEdge/fixicc-agent/bin/uninstallDaemon.sh $>/home/user/B2BITS/FIXEdge_one/FIXEdge/bin/FIXEdge1.stop.sh $>/home/user/B2BITS/FIXEdge_two/FIXEdge/bin/FIXEdge1.stop.sh
2. Remove B2BITS/FIXEdge_one and B2BITS/FIXEdge_two folders recursively
Troubleshooting
Windows
Find troubleshooting notes for one-instance installation cases in
https://kb.b2bits.com/display/B2BITS/FIXEdge+installation+on+Windows.+Step+by+step+instruction
1. server installation fails. The error is "Cannot create service. The specified service already exists in this database"
Check the ServiceName parameter in FIXEdge.properties file.
2. The second instance of fixicc agent installs and starts without errors but doesn’t appear in services
Check wrapper.conf file – service names must be changed.
3. The server does not start from FIXICC GUI. The process starts and hangs for a long time, but no error messages appear in the details field.
Check server name parameter in FIXEdge1.service.run.cmd.
Try to run FIXEdge as console application to get full error using FIXEdge1.run.cmd or FIXEdge1.run.sh
Linux
Find troubleshooting notes for one-instance installation cases in https://kb.b2bits.com/display/B2BITS/FIXEdge+installation+on+Linux.+Step+by+step+instruction