Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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:

...

  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;
    Note

    "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. ICEPOF_Logon.msg
    2. engine.properties
    3. FIXEdge.properties
    4. BL_Config.xml
    Update database using 'ICE_POF_database.sql' scripts (adjust change the database name if necessary

  5. Start the FIXICC-agent instance;
  6. Start the FIXEdge via FIX Integrated Control Center (FIXICC)

Note

In order to ensure that upgraded ICE Trade Capture ICE Private Order Feed Drop Copysolution was successfully setup, please check the FixEdge.log file:

  • Find the following record with the target FIXEdge version:

    Code Block
    languagebash
    titleFixEdge.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. ICETC_Logon.msg
  2. engine.properties
  3. FIXEdge.properties
  4. 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 ICEPOF_Logon.msg file (Logon Message):
      • Set the 9007 tags to "1 "
Info

See Private Orders (FIX) Technical Specificationhttps://community.theice.com/docs/DOC-19795 also

  • Update the engine.properties file:

      • Specify the parameters as further described:
        • AdditionalParsersList = FIX44ICEPOF;
Info

See AdditionalParsersList also


  • 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>
Info

See Configuring FIX Sessionsalso


  •  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) 

        Code Block
        languagexml
        titleBL_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);

        Code Block
        languagexml
        titleBL_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)


        Code Block
        languagexml
        titleBL_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

        Code Block
        languagexml
        titleBL_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;