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

Overview

This article is intended to help customers who use ICE Private Order Feed Drop Copy connection to upgrade their FIXEdge based solution to the latest version. The article provides upgrade instruction for the following scenarios:

  • Upgrade of the existing ICE Private Order Feed Drop Copy setup

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

Upgrade of the existing ICE Private Order Feed Drop Copy setup

This section shows how to upgrade existing version of ICE Private Order Feed Drop Copy solution. It is assumed that after the upgrade:

  • ICE Private Order Feed Drop Copy solution will contain latest FIXEdge version with all the new features and bugfixes
  • all customer's specific ICE Private Order Feed Drop Copy 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)

Upgrade Preparation

  1. Make sure you have sufficient administration permissions for further uninstall/install procedures.
  2. Download new ICE Private Order Feed Drop Copy 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;

  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. engine.properties
    2. FIXEdge.properties
    3. BL_Config.xml
  5. Start the FIXICC-agent instance;
  6. Start the FIXEdge via FIX Integrated Control Center (FIXICC)

In order to ensure that upgraded ICE ICE Private Order Feed Drop Copy 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.

Upgrade of the existing configuration files to FIXEdge 6.7.1

This section contains a list of changes that need to be made to update the  ICE Private Order Feed Drop Copy Solution configuration. The upgrade process is similar to the process described in this section Upgrade of the existing ICE Private Order Feed Drop Copy 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 Private Order Feed Drop Copy configuration update (instead of Upgrade of the existing ICE Private Order Feed Drop Copy 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. BL_Config.xml

Adjust ICE Private Order Feed Drop Copy 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 = FIX44ICEPOF;


  • Update the FIXEdge.properties file
      • Update the Version parameter for ICEPOFSession as further described:
        • FixLayer.FixEngine.Session.ICEPOFSession.Version = FIX44ICEPOF;
      • Add the SessionQualifierValue parameter for ICEPOFSession as further described:
        • FixLayer.FixEngine.Session.ICEPOFSession.SessionQualifierValue = Q1
      • Add the Username and Password parameters for ICEPOFSession as further described:
        • FixLayer.FixEngine.Session.ICEPOFSession.Username = <ICEUserName>
        • FixLayer.FixEngine.Session.ICEPOFSession.Password = <ICEUserPassword>


  •  Update the BL_Config.xml file

      • Change ICEReports, ICEPOFReportsCombiDefinitions, Sent_Messages_ICE_POF History descriptions as further described (adjust change the ConnectionString parameter if necessary) 

        BL_Config.xml
            <History Name="ICEPOFReports"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFReports"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="ExecID" ColumnSize="128">17</KeyField>
              <KeyField ColumnName="Symbol" ColumnSize="128">55</KeyField>
              <KeyField ColumnName="Side" ColumnSize="128">54</KeyField>
              <KeyField ColumnName="SourceFeed" ColumnSize="128">9009</KeyField>
              <KeyField ColumnName="ExecType" ColumnSize="128">150</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
           <Field ColumnName="TransactTimeWasNULL" ColumnSize="128">00</Field>
           <Field ColumnName="PossDupFlag" ColumnSize="128">43</Field>
           <Field ColumnName="PossResend" ColumnSize="128">97</Field>
              <Field ColumnName="SendingTime" ColumnSize="128">52</Field>
              <Field ColumnName="OrderID" ColumnSize="128">37</Field>
              <Field ColumnName="ClOrdID" ColumnSize="128">11</Field>
              <Field ColumnName="OrigClOrdID" ColumnSize="128">41</Field>
              <Field ColumnName="ClientID" ColumnSize="128">109</Field>
              <Field ColumnName="TargetCompId" ColumnSize="128">56</Field>
              <Field ColumnName="ExecInst" ColumnSize="128">18</Field>
              <Field ColumnName="OnBehalfOfCompId" ColumnSize="128">115</Field>
              <Field ColumnName="OnBehalfOfSubId" ColumnSize="128">116</Field>
              <Field ColumnName="OnBehalfOfLocationId" ColumnSize="128">144</Field>
              <Field ColumnName="HistoryRequestId" ColumnSize="128">9415</Field>
              <Field ColumnName="OriginatorUserID" ColumnSize="128">9139</Field>
              <Field ColumnName="ExecTransType" ColumnSize="128">20</Field>
              <Field ColumnName="ExecRefID" ColumnSize="128">19</Field>
              <Field ColumnName="OrdStatus" ColumnSize="128">39</Field>
              <Field ColumnName="OrderState" ColumnSize="128">9175</Field>
              <Field ColumnName="OrdRejReason" ColumnSize="128">103</Field>
              <Field ColumnName="OrderQty" ColumnSize="128">38</Field>
              <Field ColumnName="SecurityType" ColumnSize="128">167</Field>
              <Field ColumnName="PutOrCall" ColumnSize="128">201</Field>
              <Field ColumnName="StrikePrice" ColumnSize="128">202</Field>
              <Field ColumnName="MaxShow" ColumnSize="128">210</Field>
              <Field ColumnName="OrdType" ColumnSize="128">40</Field>
              <Field ColumnName="Price" ColumnSize="128">44</Field>
              <Field ColumnName="ExecRestatementReason" ColumnSize="128">378</Field>
              <Field ColumnName="CustOrderHandlingInst" ColumnSize="128">1031</Field>
              <Field ColumnName="LiquidityIndicator" ColumnSize="128">9120</Field>
              <Field ColumnName="MemoField" ColumnSize="128">9121</Field>
              <Field ColumnName="TransactDetails" ColumnSize="128">9123</Field>
              <Field ColumnName="NumberOfCycles" ColumnSize="128">9022</Field>
              <Field ColumnName="SequenceWithinMillis" ColumnSize="128">9028</Field>
              <Field ColumnName="ClientAppType" ColumnSize="128">9413</Field>
              <Field ColumnName="CustClearingVenue" ColumnSize="128">9209</Field>
              <Field ColumnName="TrdType" ColumnSize="128">828</Field>
              <Field ColumnName="TimeInForce" ColumnSize="128">59</Field>
              <Field ColumnName="PositionEffect" ColumnSize="128">77</Field>
              <Field ColumnName="LeavesQty" ColumnSize="128">151</Field>
              <Field ColumnName="CumQty" ColumnSize="128">14</Field>
              <Field ColumnName="AvgPx" ColumnSize="128">6</Field>
              <Field ColumnName="LastQty" ColumnSize="128">32</Field>
              <Field ColumnName="LastPx" ColumnSize="128">31</Field>
              <Field ColumnName="LastParPx" ColumnSize="128">669</Field>
              <Field ColumnName="MultiLegReportingType" ColumnSize="128">442</Field>
              <Field ColumnName="SecondaryExecID" ColumnSize="128">527</Field>
              <Field ColumnName="CrossId" ColumnSize="128">548</Field>
              <Field ColumnName="CrossType" ColumnSize="128">549</Field>
              <Field ColumnName="ClearingFirm" ColumnSize="128">439</Field>
              <Field ColumnName="ClearingAccount" ColumnSize="128">440</Field>
              <Field ColumnName="StartDate" ColumnSize="128">916</Field>
              <Field ColumnName="EndDate" ColumnSize="128">917</Field>
              <Field ColumnName="AccountCode" ColumnSize="128">9195</Field>
              <Field ColumnName="CustomerAccountRefId" ColumnSize="128">9207</Field>
              <Field ColumnName="CrossExecutionType" ColumnSize="128">9405</Field>
              <Field ColumnName="DeliveryStartDate" ColumnSize="128">9520</Field>
              <Field ColumnName="DeliveryEndDate" ColumnSize="128">9521</Field>
              <Field ColumnName="LocationCode" ColumnSize="128">9522</Field>
              <Field ColumnName="MeterNumber" ColumnSize="128">9523</Field>
              <Field ColumnName="LeadTime" ColumnSize="128">9524</Field>
              <Field ColumnName="ReasonCode" ColumnSize="128">9525</Field>
              <Field ColumnName="DayRate" ColumnSize="128">9526</Field>
              <Field ColumnName="Text" ColumnSize="128">58</Field>      
           <Field ColumnName="PriceType" ColumnSize="128">423</Field>
           <Field ColumnName="StopPx" ColumnSize="128">99</Field>
           <Field ColumnName="ExpireDate" ColumnSize="128">432</Field>
           <Field ColumnName="ExpireTime" ColumnSize="128">126</Field>
              <Field ColumnName="LinkExecID" ColumnSize="128">9527</Field>
              <Field ColumnName="BrokerCompID" ColumnSize="128">9065</Field>
              <Field ColumnName="BrokerCompName" ColumnSize="128">9066</Field>
              <Field ColumnName="BrokerUserID" ColumnSize="128">9067</Field>
              <Field ColumnName="DeleteReason" ColumnSize="128">285</Field>
              <Field ColumnName="QuoteRespID" ColumnSize="128">693</Field>
              <Field ColumnName="WaiverIndicator" ColumnSize="128">8013</Field>
              <Field ColumnName="ImpliedIndicator" ColumnSize="128">9003</Field>
              <Field ColumnName="CTICode" ColumnSize="128">9208</Field>
              <Field ColumnName="DirectElectronicAccess" ColumnSize="128">9700</Field>
              <Field ColumnName="TradingCapacity" ColumnSize="128">9701</Field>
              <Field ColumnName="LiquidityProvision" ColumnSize="128">9702</Field>
              <Field ColumnName="CommodityDerivIndicator" ColumnSize="128">9703</Field>
              <Field ColumnName="InvestmentDecision" ColumnSize="128">9704</Field>
              <Field ColumnName="ExecutionDecision" ColumnSize="128">9705</Field>
              <Field ColumnName="ClientIDCode" ColumnSize="128">9706</Field>
              <Field ColumnName="MiFIDID" ColumnSize="128">9707</Field>
              <Field ColumnName="MemberName" ColumnSize="128">5364</Field>
              <Field ColumnName="CounterpartyTraderID" ColumnSize="128">6347</Field>
              <Field ColumnName="CounterpartyCompID" ColumnSize="128">6822</Field>
              <Field ColumnName="ContraFirm" ColumnSize="128">9068</Field>
              <Field ColumnName="ComplianceID" ColumnSize="128">376</Field>   
              <Field ColumnName="NumOfCombiDefinitions" ColumnSize="128">9500</Field>
              <Field ColumnName="TermsQualityComments" ColumnSize="128">9510</Field>   
           <Field ColumnName="NoLegExecutions" ColumnSize="128">9029</Field>   
            </History>
         <History Name="ICEPOFReportsCombiDefinitions"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFReportsCombiDefinitions"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
           
              <KeyField ColumnName="ExecID" ColumnSize="128">17</KeyField>
              <KeyField ColumnName="Symbol" ColumnSize="128">55</KeyField>
              <KeyField ColumnName="Side" ColumnSize="128">54</KeyField>
              <KeyField ColumnName="SourceFeed" ColumnSize="128">9009</KeyField>
              <KeyField ColumnName="ExecType" ColumnSize="128">150</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>   
            <KeyField ColumnName="CombiDefinitionsEntry" ColumnSize="128">5999</KeyField> 
              <Field ColumnName="CombiPercentage" ColumnSize="128">9501</Field>
              <Field ColumnName="CombiPriceBasis" ColumnSize="128">9502</Field>
              <Field ColumnName="CombiPriceBasisPeriod" ColumnSize="128">9503</Field>
              <Field ColumnName="CombiPriceBasisSubLevel" ColumnSize="128">9504</Field>
              <Field ColumnName="CombiLegPrice" ColumnSize="128">9505</Field>
            </History>
         
            <History Name="Sent_Messages_ICE_POF"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="Sent_Messages_ICE_POF"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="ExecID" ColumnSize="128">17</KeyField>
              <KeyField ColumnName="Symbol" ColumnSize="128">55</KeyField>
              <KeyField ColumnName="Side" ColumnSize="128">54</KeyField>
              <KeyField ColumnName="SourceFeed" ColumnSize="128">9009</KeyField>
              <KeyField ColumnName="ExecType" ColumnSize="128">150</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>   
            </History>
      • Add ICEPOFAllocation, ICEPOFAllocationExecsdescriptions, ICEPOFAllocationAllocs, ICEPOFAllocationAllocsInfoas, Sent_Allocation_ICE_POF History descriptions as further described (adjust change the ConnectionString parameter if necessary);

        BL_Config.xml
           <History Name="ICEPOFAllocation"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFAllocation"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="AllocID" ColumnSize="256">70</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
           <Field ColumnName="TransactTimeWasNULL" ColumnSize="128">00</Field>
           <Field ColumnName="PossDupFlag" ColumnSize="128">43</Field>
           <Field ColumnName="PossResend" ColumnSize="128">97</Field>
              <Field ColumnName="SendingTime" ColumnSize="128">52</Field>   
              <Field ColumnName="AllocTransType" ColumnSize="128">71</Field>
              <Field ColumnName="ClearingBusinessDate" ColumnSize="128">715</Field>
              <Field ColumnName="AllocReportType" ColumnSize="128">794</Field>
              <Field ColumnName="AllocStatus" ColumnSize="128">87</Field>
              <Field ColumnName="NoOrders" ColumnSize="128">73</Field>
              <Field ColumnName="ClOrdID" ColumnSize="128">11</Field>
              <Field ColumnName="NoExecs" ColumnSize="128">124</Field>
              <Field ColumnName="TrdType" ColumnSize="128">828</Field>
              <Field ColumnName="Symbol" ColumnSize="128">55</Field>
              <Field ColumnName="SecurityType" ColumnSize="128">167</Field>
              <Field ColumnName="MaturityMonthYear" ColumnSize="128">200</Field>
              <Field ColumnName="PutOrCall" ColumnSize="128">201</Field>
              <Field ColumnName="StrikePrice" ColumnSize="128">202</Field>
              <Field ColumnName="SecurityExchange" ColumnSize="128">207</Field>
              <Field ColumnName="Shares" ColumnSize="128">53</Field>
              <Field ColumnName="AvgPx" ColumnSize="128">6</Field>
              <Field ColumnName="TradeDate" ColumnSize="128">75</Field>
              <Field ColumnName="TradeInputSource" ColumnSize="128">578</Field>
              <Field ColumnName="Text" ColumnSize="128">58</Field>
              <Field ColumnName="LiquidityIndicator" ColumnSize="128">9120</Field>
              <Field ColumnName="NoAllocs" ColumnSize="128">78</Field>
            </History>
            <History Name="ICEPOFAllocationExecs"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFAllocationExecs"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="AllocID" ColumnSize="256">70</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
              <KeyField ColumnName="ExecEntry" ColumnSize="128">7771</KeyField>
              <Field ColumnName="LastShares" ColumnSize="128">32</Field>
              <Field ColumnName="ExecID" ColumnSize="128">17</Field>
              <Field ColumnName="LastPx" ColumnSize="128">31</Field>
              <Field ColumnName="TradeID" ColumnSize="128">1003</Field>
              <Field ColumnName="ClientAppType" ColumnSize="128">9413</Field>   
            </History>
            <History Name="ICEPOFAllocationAllocs"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFAllocationAllocs"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="AllocID" ColumnSize="256">70</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
              <KeyField ColumnName="AllocEntry" ColumnSize="128">7772</KeyField>
              <Field ColumnName="AllocShares" ColumnSize="128">80</Field>
              <Field ColumnName="AllocAccount" ColumnSize="128">79</Field>
              <Field ColumnName="AllocPrice" ColumnSize="128">366</Field>
              <Field ColumnName="SecondaryIndividualAllocID" ColumnSize="128">989</Field>
              <Field ColumnName="IndividualAllocType" ColumnSize="128">992</Field>
              <Field ColumnName="AllocCustomerCapacity" ColumnSize="128">993</Field>
              <Field ColumnName="AllocPositionEffect" ColumnSize="128">1047</Field>
              <Field ColumnName="AllocText" ColumnSize="128">161</Field>
              <Field ColumnName="SettlementAccountCode" ColumnSize="128">9194</Field>
              <Field ColumnName="AllocAcceptanceTime" ColumnSize="128">9060</Field>
              <Field ColumnName="NoAllocInfo" ColumnSize="128">9140</Field>
            </History>
         
            <History Name="ICEPOFAllocationAllocsInfo"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="ICEPOFAllocationAllocsInfo"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="AllocID" ColumnSize="256">70</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
              <KeyField ColumnName="AllocEntry" ColumnSize="128">7773</KeyField>
              <KeyField ColumnName="AllocInfoEntry" ColumnSize="128">7774</KeyField>
              <Field ColumnName="AllocSideInfo" ColumnSize="128">9141</Field>
              <Field ColumnName="ClientID" ColumnSize="128">109</Field>
              <Field ColumnName="BrokerCompID" ColumnSize="128">9065</Field>
              <Field ColumnName="OriginatorUserID" ColumnSize="128">9139</Field>
              <Field ColumnName="AccountCode" ColumnSize="128">9195</Field>
              <Field ColumnName="TMMnemonic" ColumnSize="128">9103</Field>
              <Field ColumnName="RIMnemonic" ColumnSize="128">9603</Field>
              <Field ColumnName="CMMnemonic" ColumnSize="128">9604</Field>
              <Field ColumnName="ClrHouseCode" ColumnSize="128">9609</Field>
              <Field ColumnName="CustomerAccountRefID" ColumnSize="128">9207</Field>
            </History>
          
            <History Name="Sent_Allocation_ICE_POF"
                     StorageType="ODBC"
                     MaxNumberOfRecords="15000"
                     TableName="Sent_Allocation_ICE_POF"
                     ColumnSize="256"
                     ConnectionString="DSN=ICE_POF;UID=pof_admin;Pwd=temp_pass;">
              <KeyField ColumnName="AllocID" ColumnSize="256">70</KeyField>
              <KeyField ColumnName="TransactTime" ColumnSize="128">60</KeyField>
            </History>


      • Change "Rule to notify java script creating Historic Request about established ICE POF FIX session" rule descriptions as further described (adjust change the SENDER_COMP_ID)


        BL_Config.xml
        <Rule Description="Rule to notify java script creating Historic Request about established ICE POF FIX session">
        	<Source>
                	<FixSession SenderCompID=".*" TargetCompID=".*" /> 
        	</Source>
        	<Condition>
        	        <EqualField Field="35" Value="C" />
        		<EqualField Field="50" Value="Q1"/>
        		  <!-- PLACE YOUR SENDER COMP ID HERE -->
        		<MatchMessage Value=".*147=\[NOTE\] SENDER_COMP_ID:ICE Established.*"/>
        	</Condition>
        	<Action>
        		<Script Language="JavaScript" FileName="FIXEdge1/conf/ICEPofHistoryReq.js"/>  
        	</Action>
        </Rule>



      • Add "Save ICE POF Allocation Reports" rule descriptions as further described

        BL_Config.xml
         <Rule Description="Save ICE POF Allocation Reports">
        	<Source Name="ICEPOF.*" />
        	<Condition>
        		<EqualField Field="35" Value="J" />
        	</Condition>
        	<Action>
        		<Script Language="JavaScript" FileName="FIXEdge1/conf/ICEPofAllocRpt.js" />
        	</Action>
         </Rule> 

Database Schema update

  • Make a copy of your current Database scheme;
  • Run the ICE_POF_database.sql script. This script recreates these tables (data will be lost):
      • Execution Report (MsgType = ''8")
      • Table: ICEPOFReports
      • Table: ICEPOFReportsCombiDefinitions
      • Table: Sent_Messages_ICE_POF
    • Allocation Report (MsgType = ''J")
      • Table: ICEPOFAllocation
      • Table: ICEPOFAllocationExecs
      • Table: ICEPOFAllocationAllocs
      • Table: ICEPOFAllocationAllocsInfo
      • Table: Sent_Allocation_ICE_POF;
  • No labels