OnixS::CME::iLink3::Messaging::SchemaTraits::Id: if this attribute is different from the ID of the SBE Schema that is used by CME, the Handler is incompatible with the particular CME environment. If an attempt to decode a message with a different schema id is made, an error will be reported and the connection will be terminated. In this case, please contact OnixS Support to obtain a newer version of the Handler.
OnixS::CME::iLink3::Messaging::SchemaTraits::MinimalVersion defines the minimal version supported. If an attempt to decode a message with a lower version is made, an error will be reported, and the connection will be terminated. If an attempt to create a message with a lower version is made, the exception is thrown.
OnixS::CME::iLink3::Messaging::SchemaTraits::Version: the latest supported version. It is the default version for creating outcoming messages.
OnixS::CME::iLink3::SessionSettings::messagingSchemaVersion
specifies the SBE messaging version to be used session-wide. The default value is OnixS::CME::iLink3::Messaging::SchemaTraits::Version
. The session uses this version for session-level messages.
The Handler checks all the messages a user sends to comply with this attribute (this is done in debug mode only); otherwise, it throws an exception.
To create an application-level message of the lower version (but it is still should be higher than OnixS::CME::iLink3::Messaging::SchemaTraits::MinimalVersion), pass the required version to its constructor. For example:
The Message can take the version from the Session's instance:
To obtain the SBE Schema version of the message, use the following member function:
It is possible to use several Sessions with different SBE Schema versions simultaneously. The desired SBE Schema version should be specified per session. In the following snippet, modernSession
is configured to use the most recent schema version supported, i.e.: to use OnixS::CME::iLink3::Messaging::SchemaTraits::Version - the default value for OnixS::CME::iLink3::SessionSettings::messagingSchemaVersion and legacySession
is configured to use the previous schema version: