|Understanding Handler States||Table of Content||Advanced Programming|
|Security Definition Recovery|
This section provides information on how the Handler downloads product definitions.
After Start(ICollection<GroupSubscription>) method is called the Handler establishes an SSL connection to the ICE server and sends Login Request. If login is successful and Login Response does not indicate any error the Handler starts security definition recovery.
To indicate this the Handler has two states:
The first state is indicating that the Handler just started security definition recovery and only going to send a product definition request. The second state is indicating that all the product definitions downloaded successfully and the Handler is going to start book resynchronization.
To download all the required product definitions the Handler uses a set of market subscriptions which are passed to Start method. Each product definition request requires market type and security type so this information is extracted from subscriptions. For example, if a user wants to download product definitions for the following market subscriptions:
MarketSubscription(5, SecurityType.Futures, BookDepth.FOD); MarketSubscription(5, SecurityType.UdsFuturesMarkets, BookDepth.FOD);
The handler will send two product definition requests. For each of these requests, the Handler should receive all the available product definitions or Error Response if there are no product definitions for the requested parameters. The Handler automatically handles such Error Responses and if an error is not critical it continues working. In case the error is critical and indicate something else and not the absence of requested product definitions the Handler will notify user code and stop.
If your application needs Strip Info Messages you can set GetStripInfoMessages to true or specify this in the connectivity configuration file using getStripInfoMessages node:
<server name="ICE"> <ip>126.96.36.199</ip> <port>443</port> <userName>username</userName> <password>password</password> <getStripInfoMessages>N</getStripInfoMessages> <strategyPreference>New</strategyPreference> <localNetworkInterface></localNetworkInterface> <sslEnabled>Y</sslEnabled> </server>