OnixS C++ CME iLink 3 Binary Order Entry Handler  1.8.0
API Documentation
Frequently Asked Questions

A: When does the license expire OnixS::CME::iLink3::SessionException, that is thrown during the call of the OnixS::CME::iLink3::Session::connect method? For more information read Licensing topic.

A: It looks like a configuration-related issue indeed (either on yours or counterpart side). The error message means that the TCP connection was established and the initial Negotiate SBE message was sent, but after that, the TCP connection was closed by the counterparty. So we would recommend contacting your counterparty iLink 3 Support Team and provide them with your SBE message log file (*.summary) and ask them what you need to change (if anything) in your initial Negotiate, in order to establish the iLink 3 Session successfully. Perhaps they need to update the configuration settings on their side, in order to accept your iLink 3 connection (e.g. update credentials settings or the expected source IP address).

A: We would suggest the following approach:
  1. When OnixS::CME::iLink3::SessionListener::onReceivedBytes is called, the T1 timestamp is recorded and the counter is incremented.
  2. If OnixS::CME::iLink3::SessionListener::onReceivedBytes is called again the counter is incremented again.
  3. When inbound strongly typed message callback is called the T2 timestamp is called and the counter is analyzed.

    If it is 1 then the inbound latency is equal to T2-T1. If it is greater than 1 it means that there was TCP fragmentation so the latency cannot be calculated properly. If it is 0 it means that more than one SBE messages were received in one IP package and the latency cannot be calculated properly. In any case the counter should be set back to 0.

A: This is the expected behavior. In order to decrease the receiving latency (exclude the logging latency from the receiving latency), incoming application SBE messages are logged after inbound strongly typed message callbacks.

A: Each session occupies system resources (Threads, File descriptors, etc.). Each operating system has a limit of system resources, so if you achieve this limit then you cannot create more iLink 3 sessions. In order to create the maximum amount of iLink 3 sessions you can use the OnixS::CME::iLink3::ThreadingModel::ThreadPool mode, and OnixS::CME::iLink3::SessionStorageType::MemoryBased session storage type.