Page tree
Skip to end of metadata
Go to start of metadata

Overview

This article is intended to help customers who use ICE Trade Capture connection to upgrade their FIXEdge based solution to the latest version. The article provides upgrade instruction for the following scenarios:

  • Pure installation of the new version of ICE Trade Capture solution
  • Upgrade of the existing ICE Trade Capture setup

Please note, if you have multiple connections (not only ICE Trade Capture) on the same FIXEdge instance, contact SupportFIXAntenna@epam.com to get full upgrade instruction.

Pure installation of the new version of ICE Trade Capture solution

This section shows how to setup new version of ICE Trade Capture solution. It is assumed that:

  • package contains latest ICE Trade Capture Solution version with all the new features and bugfixes
  • 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 customer's specific ICE Trade Capture configurations and database schemes will be discarded
  • no migration of existing data from the current database to the new upgraded database takes place (means new clean Database from the package to be setup)
  • it is required to enter all ICE specific credentials to the new configuration setup following the instructions
  • after the solution start, trades from last 2 days will be re-requested and stored into the database

Preparation

  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. Keep your current installation for back-up purposes;
  4. Make a copy of your current Database scheme;
  5. Make a copy of your current license (engine.license).
    If your license has expired or was lost, contact sales@btobits.com to obtain the new one;

Upgrade Process

  1. Unpack new version of ICE Trade Capture solution to the separate folder;
  2. Take the details from you current installation and adjust the configuration following the step 3 from ICE Trade Capture FAQ # How to deploy the package and make it work;
  3. 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 (libICEHandler-gcc44-MD-x64.so in Linux package and ICEHandler-vc10-MD-x64.dll in Windows package), give them names according to your specifics and put to the /bin folder;
    2. Adjust configuration accordingly;
  4. Copy your FIXEdge license into the license file path;
  5. Stop your current FIXEdge instance;
  6. Stop your current FIXICC-agent instance;
  7. Uninstall your current FIXEdge and FIXICC Agent instances (means deregister these services from the system):
    1. For Windows: run FIXEdge1.uninstall.cmd from /bin directory and uninstallService.FIXEdge1.bat from fixicc-agent\bat directory
    2. For Linux: run uninstallDaemon.sh from fixicc-agent\bat directory
  8. Remove all the files except servers.xml from FIXICC's working dir .fixicc/dev normally placed in C:\Users\%USER%\AppData\Roaming directory;
  9. Upgrade the Database scheme with the new one provided in the package in DB_script directory;
  10. Execute 'MSSQL_ICETrdCapt.sql', 'MSSQL_ICESecDef.sql', and 'MSSQL_ICEStrategies.sql' scripts against the database to create or upgrade stored procedures (adjust change the database name if necessary
  11. Install new FIXEdge and FIXICC Agent instances (means register these services in the system):
    1. For Windows: run FIXEdge1.install.cmd from /bin directory and installService.FIXEdge1.bat from fixicc-agent\bat directory
    2. For Linux: run installDaemon.sh from fixicc-agent\bat directory
  12. Start the new FIXICC-agent instance;
  13. Start FIXEdge via FIX Integrated Control Center (FIXICC)

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

  • Find the following record with the target FIXEdge version:

    FixEdge.log
    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.

How to revert upgrade procedure

If you need to revert changes in order to use your original ICE Trade Capture version (that was used before the upgrade), you need to do the following steps:

  1. Stop the FIXEdge instance;
  2. Stop the FIXICC-agent instance;
  3. Uninstall the FIXEdge and FIXICC Agent instances (means deregister them from the system);
  4. Remove all the files except servers.xml from FIXICC's working dir .fixicc/dev normally placed in C:\Users\%USER%\AppData\Roaming directory;
  5. Restore the Database scheme used previously
  6. Install the FIXEdge instance of the previously used ICE Trade Capture package;
  7. Install the FIXICC-agent instance of the previously used ICE Trade Capture package;
  8. Start the FIXICC-agent process of the previously used ICE Trade Capture package;
  9. Start the FIXEdge process of the previously used ICE Trade Capture package.

Upgrade of the existing ICE Trade Capture setup

This section shows how to upgrade existing version of ICE Trade Capture solution. It is assumed that after the upgrade:

  • ICE Trade Capture solution will contain latest FIXEdge version with all the new features and bugfixes
  • all customer's specific ICE Trade Capture configurations and database schemes will be kept as is (means no ICE Trade Capture specific changes and inhancements from the new package will come)
  • all the existing data in the current Database will be kept as is

Upgrade Preparation

  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. Stop the FIXEdge instance;
  4. Stop the FIXICC-agent instance;
  5. Remove all the files except servers.xml from FIXICC's working dir .fixicc/dev normally placed in C:\Users\%USER%\AppData\Roaming directory;
  6. Make a backup copy of your current installation (configuration and binaries);
  7. Make a backup copy of your current license (engine.license).
    If your license has expired or was lost, contact sales@btobits.com to obtain the new one;

Upgrade Process

  1. Upgrade FIXEdge:
    1. For Windows version:
      Replace* all the files in <bin> directory with new binaries from the package;
    2. For Linux version:
      Replace* files in  <bin> directory with new binaries from the package - all except *.sh files;

      In case you have several ICE Handlers in <bin> directory, update all of them. To do that you need to create copies of the ICE Handler from the new package, give them names according to your specifics and replace your current binaries with new ones.
  2. Upgrade FIXICC:
    1. Replace* the whole <fixicc-agent> directory with new one from the package;
    2. Replace* the whole <fixicc> directory with new one from the package;

    "Replace" in this context means that files should be deleted from the current FIXEdge directory and new files from the package should be added there. This clarification is made in order to avoid the situation when two (or more) same libraries with different versions appear in the directory as it may cause issues.

  3. Replace <jre> directory with new one from the package;
  4. Update all the files in the FIXEdge /conf directory with files from the new package except the following ones which should be preserved from your current installation:
    1. FIXEdge.properties
    2. ICEProperties.properties
    3. BL_Config.xml
  5. Update database stored procedures, using 'MSSQL_ICETrdCapt.sql', 'MSSQL_ICESecDef.sql', and 'MSSQL_ICEStrategies.sql' scripts (adjust change the database name if necessary
  6. Start the FIXICC-agent instance;
  7. Start the FIXEdge via FIX Integrated Control Center (FIXICC)

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

  • Find the following record with the target FIXEdge version:

    FixEdge.log
    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.

How to revert upgrade procedure

In order to revert the upgrade, you should take your made backup copy and go through all the steps described above. 

In other words, the procedure is absolutely the same, the only difference is that your backup copy is the target solution version in this case.

Upgrade of the existing configuration files to FIXEdge 6.7.1

We recommend upgrading to a new version of ICE TC Solution

  • New interface of Security Definition (35=d) messages has been fully supported and enabled by default;
  • SQL Stored Procedures are used instead of JavaScripts for data processing and saving to DB. The performance of Security Definition (35=d) message processing is increased;
  • Defined Strategy (35=UDS) messages has been fully supported and enabled by default;
  • Subscribed to security definitions and UDS real-time published over the session has been added.

This section contains a list of changes that need to be made to update the ICE Trade Capture Solution configuration. The upgrade process is similar to the process described in this section Upgrade of the existing ICE Trade Capture setup. But, no migration of existing data from the current database to the new upgraded database takes place (means new clean Database from the package to be setup).

ICE Trade Capture configuration update (instead of Upgrade of the existing ICE Trade Capture setup, step 4)

Update all the files in the FIXEdge /conf directory with files from the new package except the following ones which should be preserved from your current installation:

  1. engine.properties
  2. FIXEdge.properties
  3. ICEProperties.properties
  4. BL_Config.xml

Adjust ICE Trade Capture configuration (typically located here ‘C:/B2BITS/FIXEdge/FIXEdge1/conf/’). Make a backup copy of your current configuration before. 

  • Update the engine.properties file:
      • Specify the parameters as further described:
        • AdditionalParsersList = FIX44ICETC;


  • Update the FIXEdge.properties file
      • Update the Version parameter for ICESession as further described:
        • FixLayer.FixEngine.Session.ICESession.Version = FIX44ICETC;
      • Add the AsyncProcessing and QueueSizeLimit parameters for ICESession as further described:
        • FixLayer.FixEngine.Session.ICESession.AsyncProcessing = true;
        • FixLayer.FixEngine.Session.ICESession.AsyncProcessing.QueueSizeLimit = -1
      • Remove ICEProxySender and ICEProxyReceiver sessions (if specified)
        • Exclude them from the FixLayer.FixEngine.Sessions parameter value list
        • Remove the description of the sessions. Remove all settings, starting with
          • FixLayer.FixEngine.Session.ICEProxySender.
          • FixLayer.FixEngine.Session.ICEProxyReceiver.
      • Add the Username and Password parameters for ICESession as further described:
        • FixLayer.FixEngine.Session.ICESession.Username = <ICEUserName>
        • FixLayer.FixEngine.Session.ICESession.Password = <ICEUserPassword>


  • Update the ICEProperties.properties file for UDS messages handling (if you want to receive UDS messages)
      • Add Define Strategy subscriptions to the necessary markets using provided examples in the "Security Definition Subscriptions" section:
        • Add a security definition subscription name to the list in the ICESession.UDSSubscriptions property
        • Specify SecurityID  for added defined strategy subscription as described in the instruction below:
          • ICESession.UDSSubscriptions.<Subscription_Name>.SecurityID = ice_market_type_i

Parameter values SecurityDefinitionSubscriptions and UDSSubscriptions must be unique. Names of subscriptions should not be the same for receiving Security Definition response (35=d) and Defined Strategies (35=UDS) messages.


  •  Update the BL_Config.xml file
      • Change ICEReports, ICESecurityDefinitions History descriptions as further described (adjust change the ConnectionString parameter if necessary)     

        BL_Config.xml
         <History 	Name="ICEReports"           
        		StorageType="ODBC"         
        		MaxNumberOfRecords="15000"            
        		TableName="ICEReports"            
        		ColumnSize="256000"
        		UseStoredProcForInsert="true"
        		StoredProcName="SaveReports"         
        		ConnectionString="DSN=ICE_Trades;UID=ice_admin;Pwd=temp_pass;">   
        	<KeyField ColumnName="xmlData" ColumnSize="256000">213</KeyField>   
        </History>
          
        <History 	Name="ICESecurityDefinitions"          
        		StorageType="ODBC"            
        		MaxNumberOfRecords="15000"            
        		TableName="ICESecurityDefinitions"            
        		ColumnSize="256000"
        		UseStoredProcForInsert="true"
        		StoredProcName="SaveDefinitions"           
        		ConnectionString="DSN=ICE_Trades;UID=ice_admin;Pwd=temp_pass;">     
        	<KeyField ColumnName="xmlData" ColumnSize="256000">213</KeyField>    
        </History>
      • Add ICEDefinedStrategy History descriptions as further described (adjust change the ConnectionString parameter if necessary) 

        BL_Config.xml
        <History 	Name="ICEDefinedStrategy"
                     	StorageType="ODBC"
                     	MaxNumberOfRecords="15000"
                     	TableName="ICEDefinedStrategy"
                     	ColumnSize="256000"
                        UseStoredProcForInsert="true"
                        StoredProcName="SaveStrategies"
                     	ConnectionString="DSN=ICE_Trades;UID=ice_admin;Pwd=temp_pass;">
              	<KeyField ColumnName="xmlData" ColumnSize="256000">213</KeyField> 
        </History>
      • Remove all other ICE Solution History descriptions, e.g.:
        • ICEReportsSides
        • ICEReportsSidesParties
        • ICEReportsSidesAllocsPty
        • ICEReportsLegs
        • ICEReportsLegsNestedPty
        • ICEReportsCombiDefinitions (if specified)
        • Sent_Messages_ICE
        • ICESecurityDefinitions,
        • ICESecurityDefUnderlyings
        • ICEUnderlyingSecurityAltID (if specified)
        • ICESecurityBlockDetails (if specified)          
      • Remove Routing Rules descriptions for ICESession:
        • «forward to loopback»
        • «ICEProxySender»
        • «Save ICE Trade Capture Reports»
        • «Save ICE Security Definitions»
      • Add "Register messages in ICEHandler" rule descriptions as further described

        BL_Config.xml
              <Rule Description="Register messages in ICEHandler" >
                          <Source Name=".*ICESession"/>
                          <Condition>
                                      <EqualField Field="35">
                                                  <Val>d</Val>
                                                  <Val>AE</Val>
                                                  <Val>UDS</Val>
                                      </EqualField>
                          </Condition>
                          <Action>
                                      <HandlerAction Name="ICEHandler"/>
                          </Action>
              </Rule>
      • Add "Save ICE Trade Capture Report data and register trade in ICEHandler" rule descriptions as further described

        BL_Config.xml
              <Rule Description="Save ICE Trade Capture Report data and register trade in ICEHandler">
                          <Source Name=".*ICESession" />
                          <Condition>
                                      <EqualField Field="35" Value="AE" />
                          </Condition>
                          <Action>
                                      <HandlerAction Name="FMXMLHandler" EntryIndex="true" />
                                      <SaveToHistory Name="ICEReports" />
                          </Action>
              </Rule>
      • Add "Save ICE Security Definition data and register secdef in ICEHandler" rule descriptions as further described

        BL_Config.xml
         	<Rule Description="Save ICE Security Definition data and register secdef in ICEHandler">
                     	    <Source Name=".*ICESession" />
                            <Condition>
                                      <EqualField Field="35" Value="d" />
                            </Condition>
                            <Action>
                                      <HandlerAction Name="FMXMLHandler" EntryIndex="true" />
                                      <SaveToHistory Name="ICESecurityDefinitions" />
                            </Action>
                </Rule>
      • Add "Save ICE UDS data" rule descriptions as further described

        BL_Config.xml
            	<Rule Description="Save ICE UDS data">       
        		    <Source Name=".*ICESession" />
                            <Condition>
                                      <EqualField Field="35" Value="UDS" />
                            </Condition>
                            <Action>
                                       <HandlerAction Name="FMXMLHandler" EntryIndex="true" />
                                       <SaveToHistory Name="ICEDefinedStrategy" />
                            </Action>
                </Rule>
  • Remove ICESecDef.js and ICETrdCapt.js files from FIXEdge configuration directory;

Database Schema update

  • Make a copy of your current Database scheme;
  • Run the MSSQL_ICE_database.sql script. This script recreates these tables (data will be lost):
      • Trade Capture Report (MsgType = ''AE")
        • Table: ICEReports
        • Table: ICEReportsSides
        • Table: ICEReportsSidesParties
        • Table: ICEReportsSidesAllocsPty
        • Table: ICEReportsLegs
        • Table: ICEReportsLegsNestedPty
        • Table: ICEReportsCombiDefinitions
        • Table: Sent_Messages_ICE
      • Security Definition (MsgType = ''d")
        • Table: ICESecurityDefinitions
        • Table: ICESecurityDefUnderlyings
        • Table: ICEUnderlyingSecurityAltID
        • Table: ICESecurityBlockDetails
      • Defined Strategy (MsgType = ''UDS")
        • Table: ICEDefinedStrategy
        • Table: ICEDefinedStrategyBlockDetails
        • Table: ICEDefinedStrategyLegs
  • Run MSSQL_ICESecDef.sql, MSSQL_ICEStrategies.sql, and MSSQL_ICETrdCapt.sql scripts to create Stored Procedures;



  • No labels