ICE Trade Capture Solution Installation on Linux Guide (Oracle)

The examples below illustrate the Oracle 12.2 usage on the server with CentOS 7.


This article is intended to help customers who use ICE Trade Capture connection and provides the instructions for pure installation of ICE Trade Capture solution

Please note, if you have multiple connections (not only ICE Trade Capture) on the same FIXEdge instance, contact to get full instructions.

Installation of the ICE Trade Capture solution

This section shows how to set up an ICE Trade Capture solution. It is assumed that:

  • the FIXEdge server is installed. Otherwise, install the FIXEdge server using these instructions:
  • the package contains the latest ICE Trade Capture Solution version with all the new features and bugfixes
  • the package contains only one ICE Handler component and only one ICE Trade Capture session supposed to be connected to only one ICE Trade Capture feed
  • all existing customer's specific ICE Trade Capture configurations and database schemes (if any) will be discarded
  • no data migration from any existing database to the newly added database takes place (means new clean Database from the package to be set up)
  • it is required to enter all ICE specific credentials to the new configuration following the instructions
  • after the solution start, trades from the last 2 days will be requested and stored in the database


  1. Make sure you have sufficient administration permissions for further uninstall/install procedures;
  2. Download new ICE Trade Capture solution package for the corresponding OS version from the Client Space;
  3. Make sure the Oracle server is installed and available in the local network;
  4. Make sure you have a valid license (engine.license).
    If your license has expired or was lost, contact to obtain the new one;

Installation Process

  1. Unpack new version of ICE Trade Capture solution to the separate folder, e.g.: /opt/fixedge/;

  2. Create an Oracle schema for ICE trades storage:
    1. Connect to Oracle server using the privileges allowing the new schema creation

       Example in Oracle SQL Developer

    2. Create a user, schema, and tablespace. To do it, execute the script 0_ECNMSO_script_schema.sql

       Example in Oracle SQL Developer

    3. Create the ECN_TRADE TYPE: execute the script 1_ECNMSO_script_types_ECN_TRADE_TYPE.sql

       Example in Oracle SQL Developer

    4. Create the tables: execute the script 2_ECNMSO_script_tables.sql 

       Example in Oracle SQL Developer

    5. Specify the package MESSAGE_PACKAGE with stored procedures: compile the script 3_ECNMSO_script_packages_MESSAGE_PACKAGE.pks

       Example in Oracle SQL Developer

    6. Compile the package MESSAGE_PACKAGE body: compile the script 4_ECNMSO_script_packages_MESSAGE_PACKAGE.pkb

       Example in Oracle SQL Developer

  3. Add ODBC data source for the database on the server with installed FIXEdge

    The examples below illustrate the Oracle 12.2 usage on the server with CentOS 7.

    All actions must be performed on the server where the FIXEdge is installed.

    1. Install the appropriate Oracle client (see Instant Client Application)

    2. Set the environment variables listed below for the user used to run FIXEdge: 

      The variables example. Note: the real values may differ in the particular environment
    3. Create the files listed below for the user used to run FIXEdge

      OracleConnectionName =
      Description = test connect to ORACLE DB
      Driver = /usr/lib/oracle/12.2/client64/lib/
      ServerName = OracleServiceName
      DSN = OracleODBC-12c
      Description = Oracle ODBC driver for Oracle 12c
      Driver = /usr/lib/oracle/12.2/client64/lib/
      # Driver Logging = 7 
      # "Driver Logging" is an optional parameter
  4. Adjust FIXEdge configuration
      1. file:
        1. Specify a SenderCompID (Tag 49) for the ICESession.SenderCompID property.
        2. If connecting to multiple FIX sessions, specify SenderSubIDs (Tag 50) for the ICESession.SenderSubID property.
        3. Add Security Definitions subscriptions to the necessary markets using provided examples in the "Security Definition Subscriptions" section: 
          1. Add a security definition subscription name to the list in the ICESession.SecurityDefinitionSubscriptions property.
          2. Specify SecurityID and CFICode for added security definition subscription as described in the property file comments.
            Please refer to the document for codes of ICE markets.
        4. Add Define Strategy (UDS) subscriptions to the necessary markets using provided examples in the "Security Definition Subscriptions" section:
          1. Add a security definition subscription name to the list in the ICESession.UDSSubscriptions property.
          2. Specify SecurityID  for added defined strategy subscription as described in the instruction below:
            ICESession.UDSSubscriptions.<Subscription_Name>.SecurityID = ice_market_type_idPlease refer to the document for codes of ICE markets.

            Defined Strategy (35=UDS) messages support is implemented in the ICE Trade Capture Solution (with DB Stored Procedures) based on FIXEdge 6.7.1.

        5. Specify an appropriate value of the ICESession.SecurityDefinitionaSubscriptions.RequestMode property. 
          1. Two request modes are available: SecDefFirst and TradesFirst:
            1. SecDefFirst (default) = Security Definition subscriptions are processed first. Trades processing follows once Security Definition processing is complete.
            2. TradesFirst = trades are processed first, and if configured, Security Definition subscription processing is executed simultaneously. 
          2. If you wish to receive SecurityDefinitions and UDS from p.iii only once a day, set ICESession.SecurityDefinitionaSubscriptions.RequestMode = OnceADay.
          3. If you wish to receive SecurityDefinitions and UDS from p.iii at each logon, set ICESession.SecurityDefinitionaSubscriptions.RequestMode = EachLogon.
          4. If you wish to receive SecurityDefinitions and UDS from p.iii on a scheduled basis, set ICESession.SecurityDefinitionaSubscriptions.RequestMode = Schedule.
        6. Specify a correct path in the ICESession.StorageFileName property.
      2. BL_Config.xml file:
        1. Make sure that all <History> entities point to the correct DSN, also adjust username and password if they are different from the default ones.
        2. Specify the correct SenderCompID in the rule "Launch ICE Handler" at the line: <MatchMessage Value=".*PLACE YOUR SENDER COMP ID HERE.*" />.
          E.g., if your SenderCompID is 1234, the rule will look like: <MatchMessage Value=".*1234.*" />.
        3. Specify condition in the rules that should be executed for a session with a specific SenderSubID. If SenderSubID is 987, the condition will look like: <EqualField Field="57" Value="987" />.
  5. In case several ICE Handler components should be used to connect to multiple ICE Trade Capture feeds:
    1. Create copies of the ICE Handler from the new package ( in Linux package), give them names according to your specifics, and put them to the /bin folder;
    2. Adjust configuration according to p.4 above;
  6. Copy your FIXEdge license into the license file path;
  7. Install FIXICC Agent instance (means register the services in the system):
    1. For Linux: run as sudo from fixicc-agent\bin directory
  8. Start the new FIXICC-agent instance;
  9. Connect FIX Integrated Control Center (FIXICC) to fixicc-agent and start FIXEdge.

In order to ensure that the upgraded ICE Trade Capture solution was successfully setup, please check the FixEdge.log file:

  • Find the following record with the target FIXEdge version:

    2016-09-20 10:46:19,459 UTC   INFO    [CC_Layer]  5552  FIXEdge Version X.Y.Z (rxyz) started
  • Make sure there are no [ERROR] records in the log file.