OnixS C++ CME MDP Streamlined Market Data Handler  1.2.0
API Documentation
Frequently Asked Questions

Can more than one channel per Handler be processed? Alternatively, are multiple Handler instances necessary?

One instance of OnixS::CME::Streamlined::MDH::Handler processes market data for a single channel only. Users must create multiple instances of the Handler to process data from multiple channels.

Permanent link to the answer

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

See Connectivity Troubleshooting.

Permanent link to the answer

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

When the Handler performs book recovery, it caches all the data received on incremental feeds. When the market is busy, a number of cached messages may exceed configured limit defined by the OnixS::CME::Streamlined::MDH::HandlerSettings::recoveryQueueMaxSize parameter value. So, to avoid QueueOverflow warnings, it is necessary to increase the value of the noted parameter.

Permanent link to the answer

What is the cause of 'QueueOverflow' warnings?

The cause is a violation of received packets sequence (gap) that wasn't restored after the OnixS::CME::Streamlined::MDH::RealtimeFeedSettings::outOfOrderPacketMaxInterval number of packets or after the OnixS::CME::Streamlined::MDH::HandlerSettings::lostPacketWaitTime elapsed. Violation of packet sequence can be caused by packets loss on different levels: CME environment issues, network connectivity issues, system or application issues.

Also, when Handler performs a large-scale recovery due to the gap or while joining market lately, incremental packets are cached. In case of intensive data transmission, queue keeping incremental packets may reach its limit causing a noted warning.

Please refer to our Lost multicast packets troubleshooting guide for more details.

See also
Connectivity Troubleshooting.

Permanent link to the answer

Which latency is added by the Handler?

Minimal book update latency falls into 100-250 nanoseconds depending on hardware/operating system/network conditions. Please, contact Onix Sales for most recent official benchmark results.

Permanent link to the answer

What is Handler CPU consumption?

It depends significantly on many different parameters including network, hardware, operating system environment, market data rate and applied handler settings.

Permanent link to the answer

What is the expected maximum latency our callback implementation should have?

The smaller, the better. It shall be microseconds to do not impact handler ability to process data on high tickers.

Permanent link to the answer

How are problems with market data indicated (book became invalid)?

The Handler reports all errors and warnings through OnixS::CME::Streamlined::MDH::HandlerListener::onError and OnixS::CME::Streamlined::MDH::HandlerListener::onWarning callbacks respectively.

See also
Handling Issues Like Errors and Warnings

Permanent link to the answer

How can packet issues (back-pressure/queuing) be diagnosed?

The Handler allows tracing packets as they are received by active feeds including out-of-order or duplicated packets (in contrast to market data listening which exposes packets passed through session rules). With the help of the new OnixS::CME::Streamlined::MDH::FeedListener listener, it is possible to write advanced diagnostic services.

See also
Listening for Activity on the Feeds

Permanent link to the answer