OnixS Eurex EDCI Handler C++ library 1.0.0
Users' manual and API documentation
Loading...
Searching...
No Matches
Message Identification

FIX Semantics

All application messages between the participant and the Eurex EDCI follow FIX V5.0 SP2 semantics including all officially approved extension packs.

EDCI and FIX messages have different names. To identify the name of an EDCI message, please see the tables below.

Sequence Numbers

Each outbound request sent by the participant must carry a MsgSeqNum (tag 34):

  • Per-session, monotonically increasing: starts at 1 with the Session Logon message and increments with every subsequent request sent to the gateway.
  • Outbound messages are handler-managed: EDCI is an order drop-copy feed — the only participant-originated messages are Session Logon, Heartbeat, and Session Logout, and all three are sent internally by the handler. To observe the MsgSeqNum assigned to an outbound message, implement OnixS::Eurex::DropCopy::ConnectionListener::onMessageSending.

Correlating Requests and Rejections

For session-level rejection (OnixS::Eurex::DropCopy::TemplateId::Reject), the gateway echoes back the MsgSeqNum of the rejected request in the response header. Access it via reject.responseHeader.msgSeqNum and match it against the msgSeqNum delivered to ConnectionListener::onMessageSending:

// using namespace OnixS::Eurex::DropCopy;
class MySessionListener : public SessionListener
{
void onReject(const Reject& reject, const MessageInfo& info) override
{
// reject.responseHeader.msgSeqNum echoes back the MsgSeqNum of the
// rejected request — compare against the value delivered earlier to
// ConnectionListener::onMessageSending
uint32_t rejectedSeq = reject.responseHeader.msgSeqNum;
(void)rejectedSeq;
}
};

Ordering Guarantees

Broadcast messages within a single market partition are delivered in order. Messages across different market partitions (PartitionID in RBCHeader) are independent streams with no cross-partition ordering guarantees (EDCI Manual §4.4).

Message Fragmentation

Large EDCI messages may be fragmented across multiple transport packets. The LastFragment field in the RBCHeader embedded in every broadcast message indicates whether the current delivery is the final fragment:

LastFragment Meaning
OnixS::Eurex::DropCopy::LastFragment::LastMessage This is the final (or only) fragment
OnixS::Eurex::DropCopy::LastFragment::NotLastMessage Additional fragments follow

The SDK reassembles fragments transparently. Listener callbacks are invoked once, with the fully reassembled message object. Applications do not need to buffer or stitch fragments manually.

Session Layer

EDCI MessageHandler's MessageTemplate ID (28500)FIX MessageMsgType (35)
Session LogonOnixS::Eurex::DropCopy::Logon (via Handler::connect)10000LogonA
Session Logon ResponseOnixS::Eurex::DropCopy::LogonResponse10001LogonA
Session Logoutsent via Handler::disconnect or Handler::disconnectAsync10002Logout5
Session Logout ResponseOnixS::Eurex::DropCopy::SessionListener::onLogoutResponse10003Logout5
RejectOnixS::Eurex::DropCopy::Reject10010Reject3
Heartbeat (client-sent)sent internally by the Handler10011Heartbeat0
Session Logout NotificationOnixS::Eurex::DropCopy::SessionListener::onForcedLogoutNotification10012Logout5
Heartbeat Notification (server-sent)OnixS::Eurex::DropCopy::HeartbeatNotification10023Heartbeat0
Session List NotificationOnixS::Eurex::DropCopy::SessionListNotification10036SessionDetailsListResponseU6
Partition List NotificationOnixS::Eurex::DropCopy::PartitionListNotification10037PartitionListReportU10

Order Handling

EDCI MessageHandler's MessageTemplate ID (28500)FIX MessageMsgType (35)
Extended Order InformationOnixS::Eurex::DropCopy::OrderExecReportBroadcast10901ExecutionReport8
Order (Mass) Cancellation NotificationOnixS::Eurex::DropCopy::DeleteOrderBroadcast10902OrderMassActionReportBZ
Trading Session EventOnixS::Eurex::DropCopy::SessionStatusBroadcast10903TradingSessionStatush