OnixS C++ CME Market Data Handler  2.56.0.0
Frequently Asked Questions

After switching the Operating System even the sample program is no longer able to receive market data (code=NoNetworkActivity). However, I am able to ping the CME router and iLink server. Any insight or suggestions on what may be going on here?

A: See Connectivity Troubleshooting.

If Handler joins while the market is busy, warnings (code=PacketQueueOverflow) are reported. Is there any possibility to raise the configured limit, if so how?

A: When Handler performs book resynchronization, it caches all the data received on incremental feeds. When the market is busy, number of cached messages may exceed configured limit defined by OnixS::CME::MarketData::HandlerSettings::incrementalMessageQueueMaxSize parameter value. So, to avoid 'PacketQueueOverflow' warnings, it's necessary to increase value of the noted parameter which equals to 10000 by default.

What's the difference between 'Book Changed' and 'Book Updated' events?

A: If you subscribe to the Book Updated, you'll always have a consistent book. Book Changed callbacks are designed for those who want to build and maintain books by themselves. Book Change is an elementary action over the order book and usually there're multiple changes inside single snapshot and/or incremental refresh. For this reason, book may not be valid between two changes. Only when all the changes are processed from the single network packet (message like snapshot and incremental refresh), book is considered as valid. Book Updated callbacks are called exactly at a time when all changes are processed and book appears to be valid and up-to-date.

For more information Building and Maintaining Books by Yourself topic.

When using the onConsolidatedBookUpdated callback, we seem to see crosses. Can you please assist?

A: For the implied eligible products, one may see the cross book momentarily and the book becomes normal after the next transaction at the engine. So it is possible to see the crossed book in the OnixS::CME::MarketData::ConsolidatedBookUpdateListener::onConsolidatedBookUpdated callback even when the market is in the opened state.

While processing market data for CME, I noticed that some instruments dividing by 100, some other by 10000 and others don't. How do I determine what value to scale the prices by?

A: Security definition sent by Market Data Platform contains field DisplayFactor (tag 9787) representing the multiplier to convert the CME Globex display price to the conventional price.