OnixS ICE iMpact Multicast Feed Handler for C++  3.13.0.0
Connectivity configuration

How to get the latest version of connectivity configuration files?

The latest version of connectivity configuration files available at:

http://ref.onixs.biz/ice/OnixS.IceImpactMulticastPriceFeedHandler.ConnectivityConfiguration.zip

Connectivity Configuration Structure

All public constructors of OnixS::ICE::iMpact::MarketData::Handler accept path to connectivity configuration file as primary parameter. This file contains definitions of multicast groups and network addresses of corresponding servers to which the Handler have to connect to receive market data.

There're tree major sections which make up the configuration: TCP connection information, Multicast groups and Market types.

TCP Connection Information

TCP connection information section defines attributes of remove system to which server has to connect to request primary information like product definitions for selected markets. This section also defines logon information like username and password which the Handler must supply to succeed with requests.

Typical TCP connection information section looks like following:

<tcp ip="63.247.113.163" port="3000" userName="username from ICE" password="Password from ICE" getStripInfoMessages="N"/>

Values of ip and port attributes define connection to remote system. userName and password are the logon-related attributes. getStripInfoMessages used as flag to indicate whether the client wants to get Strip Info Messages or not. 'Y' or 'N'. It is 'N' by default.

Defining Multicast Groups

Multicast groups section defines addresses of Multicast Price Feed channels for different types of books for a particular multicast group. Below example shows how single entry have to be defined:

<multicast>
<group name="ICE Futures US Agricultures">
<fullOrderDepth>
<live ip="233.156.208.255" port="20001"/>
<snapshot ip="233.156.208.254" port="20002"/>
</fullOrderDepth>
<priceLevel>
<live ip="233.156.208.253" port="20003"/>
<snapshot ip="233.156.208.252" port="20004"/>
</priceLevel>
</group>
</multicast>

Each group entry defines connection parameters for each type of book defined by the ICE iMpact specification. Therefore, connectivity configuration supposes existence of two entries in each group entry: fullOrderDepth and priceLevel. In own turn, each such entry must contain live and snapshot sub-entries which define connection information for corresponding Multicast Price Feed channel.

Market Types

Finally, Market types section defines correspondence between multicast groups and types of markets which make up a particular group. Like, 'ICE Futures Europe Oil' group includes 'IPE Gas Oil Futures', 'IPE Brent Future', 'IPE Gas Oil Futures Crack' and other market types. So, the section defines such kind of information.

Following sample depicts how association can be defined:

<allMarketTypes>
<marketType code="4" multicastGroup="ICE Futures Europe Oil">IPE Gas Oil Futures</marketType>
<marketType code="5" multicastGroup="ICE Futures Europe Oil">IPE Brent Futures</marketType>
<marketType code="6" multicastGroup="ICE Futures Europe Oil">IPE Gas Oil Futures Crack</marketType>
<allMarketTypes>

Typical Connectivity Configuration

In general, basic configuration file looks like following:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file contains the configuration information for various
deployment environments. The TCP and Multicast Group addresses
are pre-configured so we can choose a configuration during the
launch of the multicast client application
Within the multicast tag, we have different multicast groups named
as "ICE Futures US Agricultures" etc., Each of these groups, then,
have information on the context for which the client might be interested
in subscribing to. These are under FullOrderDepth/TOP5PL tags.
They, in turn, contain the live and snapshot multicast group addresses.
-->
<connectivityConfiguration>
<!-- TCP Connection Information -->
<tcp
ip="63.247.113.163"
port="3000"
userName="Value from ICE Support"
password="Value from ICE Support"
getStripInfoMessages="N"
localNetworkInterface=""
/>
<!-- Multicast Groups Information -->
<multicast>
<group name="ICE Futures US (Liffe) Metals">
<fullOrderDepth>
<live ip="233.156.208.232" port="21231"/>
<snapshot ip="233.156.208.232" port="21230"/>
</fullOrderDepth>
<top5pl>
<live ip="233.156.208.232" port="21229"/>
<snapshot ip="233.156.208.232" port="21228"/>
</top5pl>
<fullOrderDepth implied="true">
<live ip="233.156.208.232" port="21199"/>
<snapshot ip="233.156.208.232" port="21198"/>
</fullOrderDepth>
<top5pl implied="true">
<live ip="233.156.208.232" port="21197"/>
<snapshot ip="233.156.208.232" port="21196"/>
</top5pl>
</group>
<group name="ICE Futures US (Liffe) Equity Indices">
<fullOrderDepth>
<live ip="233.156.208.232" port="21227"/>
<snapshot ip="233.156.208.232" port="21226"/>
</fullOrderDepth>
<top5pl>
<live ip="233.156.208.232" port="21225"/>
<snapshot ip="233.156.208.232" port="21224"/>
</top5pl>
</group>
<!-- Options -->
<group name="ICE Futures US (Liffe) Options">
<top10pl>
<live ip="233.156.208.232" port="21187"/>
<snapshot ip="233.156.208.232" port="21186"/>
</top10pl>
<topOfBook>
<live ip="233.156.208.232" port="21185"/>
<snapshot ip="233.156.208.232" port="21184"/>
</topOfBook>
</group>
</multicast>
<!--
List of all market types with their corresponding multicast groups
The multicast group name must match what has been specified in the multicast tag
More than one market type may be mapped to a multicast group channel
Refer to the spec document, Section Appendix C: Supported Market Types
-->
<allMarketTypes>
<marketType code="206" multicastGroup="ICE Futures US (Liffe) Metals" optionsMulticastGroup="ICE Futures US (Liffe) Options">Metals</marketType>
<marketType code="207" multicastGroup="ICE Futures US (Liffe) Equity Indices" optionsMulticastGroup="ICE Futures US (Liffe) Options">IFUS Equity Indices</marketType>
</allMarketTypes>
</connectivityConfiguration>