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:
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.
This section shows how to upgrade existing version of ICE Private Order Feed Drop Copy solution. It is assumed that after the upgrade:
For Linux version:
Replace* files in <bin> directory with new binaries from the package - all except *.sh files;
"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. |
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:
|
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).
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:
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:
See AdditionalParsersList also |
See Configuring FIX Sessions also |
Change ICEReports, ICEPOFReportsCombiDefinitions, Sent_Messages_ICE_POF History descriptions as further described (adjust change the ConnectionString parameter if necessary)
<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);
<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)
<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
<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> |