Drop Copy 4.0 Functional Specification
With the Drop Copy 4.0 session model, customers must:
manage sequence streams from Convenience Gateway iLink source sessions across all market segments.
manage sequence streams from Market Segment Gateway iLink source sessions per unique market segment; with the possibility of having the same sequence numbers from multiple market segments.
The Drop Copy service supports CME Globex order routing messages, including both iLink API and CME Direct.
Authorized persons can specify which message types the Drop Copy consumer will receive on the Target Drop Copy session(s). Available messages are:
Trade Execution Reports: These messages can be used to determine a customer's filled positions.
Execution Report - Fill Notice (complete and partial fills)
Order Entry Acknowledgments: These messages can be used to determine a customer's open order positions.
EBS-Specific Acknowledgments: These messages are available only for EBS Market.
Execution Report Pending Cancel Message (tag 35-MsgType=8, tag 39-OrdStatus=6)
Execution Report Pending Replace Message (tag 35-MsgType=8, tag 39-OrdStatus=E)
Mass Quote Acknowledgments are not supported.
Customers must wait for in-flight resend requests to be fulfilled before logging out or failing over to the backup gateway.
The Drop Copy 4.0 implementation includes:
session model to support both Convenience Gateway and Market Segment Gateway source sessions
iLink-style session-level functionality
message format with encapsulated message type
dedicated FIX tags on Drop Copy 4.0 messages – inbound and outbound
standardized resend behavior (elimination of Application Resend functionality to align with iLink)
sequencing by market segment
robust fault tolerance
Contents
- 1 Connectivity Management
- 2 Drop Copy Architecture
- 3 Drop Copy 4.0 Session Model
- 4 SFTP - Drop Copy 4.0 MSGW Configuration
- 4.1 Tag 57-TargetSubID
- 4.2 IP Ranges
- 5 Messaging
- 6 Functional Specification
- 7 Bandwidth Impact
- 8 Fault Tolerance
- 9 Contact Information
Connectivity Management
CME Group requires that the client systems set their heartbeat interval to between 5 and 60 seconds, or the Logon (35=A) message will not be acted upon. CME Group recommends a heartbeat interval of 30 seconds.
Once the client system is logged on, if an inbound message is not sent during the defined interval, Drop Copy will send a Test Request (tag 35-Msgtype=1) message to ensure connectivity.
If no message is received in response to the Test Request (tag 35-MsgType=1) message within the defined heartbeat interval, the connection is assumed to be stale and the socket is closed.
Session Logon
All non-logon inbound messages sent after TCP connection and before session logon will result in a Logout (tag 35-MsgType=5) message.
Client systems MUST initiate a Logon (tag 35-MsgType=A) message within 60 seconds of establishing a TCP socket connection, or the session will be ungracefully disconnected.
Client systems can establish a session for the Drop Copy service by the following means:
Beginning of Week Logon – This is the very first Logon (tag 35-MsgType=A) message the customer sends to Drop Copy for the week. Client systems MUST set their outbound sequence numbers (tag 34-MsgSeqNum) to '1' and tag 141-ResetSeqNumFlag=N or not present, or the client system will be logged out.
Mid-Week Logon – Used for any subsequent logons after the beginning of the week. Client systems MUST set their outbound sequence numbers (tag 34-MsgSeqNum) to the next expected sequence number or tag 789-NextExpectedMsgSeqNum value on the Logout (tag 35-MsgSeqNum=5) message received from CME Globex after the client system’s last logout, or the client system will be logged out.
In-session logon - Only supported for sequence number reset for a session that is already logged on. The in-session Logon message MUST have tag 141-ResetSeqNumFlag=Y and tag 34–MsgSeqNum=1, or the client system will be logged out.
Tag 122-OrigSendingTime must not be present on any logon message or the client system will be logged out.
Sequence Number Management
Messages from the client system with higher than expected sequence numbers will trigger a Resend Request (tag 35-MsgType=2) message from Drop Copy.
Messages from the client system with lower than expected sequence numbers will result in a Logout (tag 35-MsgType=5) message.
Sequence Number Reset
To reset sequence numbers that are higher than the expected value, client systems can submit a Sequence Reset (tag 35-MsgType=4) message with Gap Fill (tag 123-GapFill=N) where tag 34-MsgSeqNum is the next expected or higher sequence number
To reset sequence numbers on Drop Copy and CME Globex with in-session logon, the inbound message from the client system MUST have tag 141-ResetSeqNumFlag=Y and tag 34–MsgSeqNum=1.
After an in-session logon, all prior messages from CME Globex will be unrecoverable.
Encapsulated Payload
Customers will receive messages from their Source session activity as a payload encapsulated within an XML non-FIX message (35=n).
Message Recovery: Drop Copy to Client
Both Basic and Enhanced Resend Requests are available for Drop Copy. CME group strongly recommends the use of Enhanced Resend Request.
When CME Globex sends the client system a Resend Request (tag 35-MsgType=2) message, the client system can take one of the following steps:
The client system can send a Sequence Reset - Gap Fill (tag 35-MsgType=4, tag 43-PossDupFlag=Y, tag 123-GapFill=Y, tag 36-NewSeqNo present and tag 122-OrigSendingTime present) message to recover from out of sequence conditions. [The tag 36-NewSeqNo value cannot be lower than the expected incoming sequence number of the system that originated the Resend Request (client system or CME Globex).]
If the client system chooses to resend all requested messages, tag 122-OrigSendingTime and tag 43-PossDupFlag=Y are required.
CME Group recommends that client systems respond to the Drop Copy Resend Request (tag 35-MsgType=2) message with a Sequence Reset - Gap Fill message.
Message Recovery: Client to Drop Copy
The Application Resend Request (tag 35-MsgType=BW) message is no longer supported by Drop Copy. Client systems sending an Application Resend Request (35=BW) message will receive a Session Level Reject (tag 35-MsgType=3) message from Drop Copy.
Drop Copy will process only one Resend Request (tag 35-MsgType=2) message from a client system at a time. Any successive Resend Request (35=2) messages received during processing will be rejected.
An in-session Logon (35=A) message sent while Drop Copy is processing a previous resend request will result in a logout.
Real time messages will be published at the same time as the Resend Response messages initiated by the Resend Request.
Client system MUST not trigger another resend.
Client system MUST manage sequence numbers separately for messages with tag 43=Y (Resend Response messages).
Client systems must hold all non-Resend Request Response messages until the resend is complete.
Message Resend Request Validation
FIX Resend Requests are available for messages from the current business week only. Resend Requests from the client system will only be fulfilled for messages with a sending time within the past 48-hour window.
If the range of requested messages are all within 48 hours of their send time, the messages will all be made available.
If part of the requested range of message sequence number send times fall outside the 48 hour window, Drop Copy will Gap Fill the unrecoverable messages and resend the available messages.
If the send times for all requested messages fall outside the 48 hour window, Drop Copy will send a Session Level Reject (tag 35-MsgType=3) message with tag 58=”Resend Request Could Not Be Fulfilled”. In the reject message, tag 5024-StartSequenceNumber will reflect the sequence number of the message with the earliest send time in the past 48 hours.
Tag | Name | Req | Format | Valid Values | Description |
---|---|---|---|---|---|
5024 | StartSequenceNumber | N | Int(9) |
| If a resend request is sent for sequence numbers that are older than the rolling 48 hour window, then this field will provide the first sequence number of the messages that can be retrieved within that window in the reject response. |
The value of tag 5024-StartSequenceNumber is only accurate for the instance for which the reject message was generated; the value of tag 5024-StartSequenceNumber will continue to increment over time.
The Drop Copy service offers a maximum limit of 2500 messages per Resend Request, any request exceeding the limit will result in a Session Level Reject (tag 35-MsgType=3) message from Drop Copy.
Inbound tag 7-BeginSeqNo MUST be lower than the last sequence number (tag 34-MsgSeqNum) or the request will result in a forced logout.
Tag 7-BeginSeqNo MUST be greater than 0 on the Resend Request or the client system will receive a Session Level Reject (tag 35-MsgType=3) message from Drop Copy.
Messaging Integrity and Validation
Any invalid message type sent by the client system will result in a Session Level Reject (35=3) message from the Drop Copy gateway.
The client system must send all inbound messages with a valid tag 10-checksum value. Messages with checksum values that are non-numeric or contain more than 3 digits will not be acted upon by Drop Copy.
Fault Tolerance and Fail-Over Management
Client systems must always connect and log into the designated primary gateway as long as it is available. An attempt to log into the designated backup while the designated primary is available will result in a forced logout.
In the event of a failover, the client system should resume sequencing on the newly-promoted, designated primary with the next sequence number (tag 34-MsgSeqNum) expected from the client system.
Drop Copy 4.0 will send messages with tag 97-PossResend =Y in the following scenarios:
while recovering unsent messages after a dual failure or before Sunday startup
while resending outbound messages that may have been in-flight during a single Drop Copy failover
while receiving outbound messages that may have been in-flight during iLink failover
Drop Copy Architecture
For customers choosing to consume message streams from MSGW, a new Drop Copy 4.0 target session is required.
A Drop Copy 4.0 target session will be replicated across multiple Drop Copy Market Segment gateways, each receiving sequence streams comprised of messages from individual market segments. Duplicate sequence numbers may be received by the target session across market segments.
The diagram below shows the new Drop Copy 4.0 architecture managing Market Segment Gateway sequence streams.
Drop Copy 4.0 Session Model
The Drop Copy 4.0 service implements a new SessionID and access model that offers both CGW and MSGW target sessions.
The CGW target sessions sequences real-time messages from supported CGW source sessions.
For a Drop Copy 4.0 CGW session, the target session sequences messages from source sessions listening across all market segments.
MSGW target sessions will sequence streams from source sessions that are unique per market segment and session combination.
Drop Copy 4.0 users connect to a given MSGW by leveraging its unique IP address and assigned Drop Copy 4.0 Session ID, security credentials, Drop Copy 4.0 Session Layer - Logon, and port.
Each MSGW target session has a unique IP address for each of the primary and backup Drop Copy 4.0 MSGW.
For both CGW and MSGW target sessions, the customer receives standard connection information for the Drop Copy 4.0 Target session(s) including:
SenderCompID – seven digit alphanumeric value consisting of:
o 6-character Session ID
o 1-character Fault Tolerance Indicator = ‘N’ (no fault tolerance)
Session Configuration
Convenience Gateway Source Sessions | Market Segment Gateway Source Sessions |
---|---|
Connection and sequencing of messages to all the existing and new Drop Copy 4.0 target sessions is supported in parallel. |
|
For load balancing, the same IP address may be designated primary for one Drop Copy 4.0 target session and backup for another Drop Copy 4.0 target session.
Managing Sequence Numbers
A single MSGW Drop Copy 4.0 session is able to log into into all MSGW instances. To manage message sequence numbers, the client system must leverage the combination of Session ID (the first 6 characters of tag 49-SenderCompID) and tag 57-TargetSubID.
CME Globex is comprised of a number of market segments. The number of market segments and the instruments listed on each can change in the future. Customers are strongly encouraged to rely programmatically on tag 57-TargetSubID (which contains the tag 1300-MarketSegmentID value) in the Market Data Security Definition message to route orders to the correct MSGW.
CGW Session ID | MSGW Session ID | |
---|---|---|
Number of sequence stream(s) | 1 sequence stream | Customers must manage different sequence streams, up to the number of current market segments, based on the combination of Session ID and Market Segment ID. |
Number of TCP connection(s) | 1 TCP connection to access all market segments | TCP connections for each MSGW instance to access all market segments |
SFTP - Drop Copy 4.0 MSGW Configuration
An SFTP site (sftpng.cmegroup.com) is used to disseminate the Drop Copy 4.0 MSGW configuration information. The MSGW Configuration allows clients system to receive the list of all market segments and MSGW IPs. This SFTP site contains the configuration files for all environments. The SFTP site is a secure site that requires a user name and security credentials for access.
Table Key:
Environment - specific environment (i.e., Certification, New Release, Production).
Service - the Configuration service.
SFTP Site - address of SFTP site.
User Name - identifies the user name.
Security Credentials - identifies the security credentials.
Directory Location - identifies the directory.
Client System Update Schedule - Client systems should download updates according to the schedule specified.
Environments | Service | SFTP Site | User Name | Security Credentials | Directory | Client System Update Schedule |
---|---|---|---|---|---|---|
Production | Configuration | cmeconfig | G3t(0nnect3d | /DCMSGW/Production/Configuration | daily | |
Certification | /DCMSGW/Cert/Configuration | |||||
New Release Certification | /DCMSGW/NRCert/Configuration |
In addition to the generic User Name/security credentials, client systems can connect using the same credentials used for CME SFTP site.
To download files from the SFTP site, use an SFTP client to connect to sftpng.cmegroup.com.
Tag 57-TargetSubID
Customers may connect directly to all Market Segment Gateways using the same Session ID. Customers can use tag 1300-MarketSegmentID from the market data Security Definition (tag 35-MsgType=d) message to specify the market segment for the products they want to trade on CME Globex.
For iLink messages sent from the client system to CME Globex, MSGW customers can leverage tag 57-TargetSubID to specify the market segment of the instrument. Tag 57-TargetSubID contains the tag 1300-Market SegmentID value. CME Globex will respond and return the tag 57-TargetSubID values submitted in the customer iLink message on tag 50-SenderSubID.
Example
Time | From Client System to CME Globex | From CME Globex to Client System | Tag 35-MsgType | Tag 49-SenderCompID | Tag 50-SenderSubID | Tag 57-TargetSubID |
---|---|---|---|---|---|---|
1 | Logon | A | ZUB007N | ATS | 74 | |
2 | Logon Ack | A | CME | 74 | ATS | |
3 | Test Request | 1 | CME | 74 | ATS |
Drop Copy 4.0 MSGW will reject any attempts to logon with an incorrect Market Segment ID with a Logout message (tag 35=5), including tag 58 = Invalid TargetSubID(tag 57).
Drop Copy 4.0 MSGW will reject any administration message with an incorrect Market Segment ID with a Session Level Reject (tag 35=3), including tag 58 =TargetSubId (57) tag has an incorrect value: < MarketSegmentID>, should be: < MarketSegmentID>
Drop Copy Convenience Gateway (CGW) sessions use tag 57-TargetSubID=G for all messages sent from the client system to CME Globex.
IP Ranges
This table comprises Drop Copy 4.0 source ranges available to customers on the CME Globex WAN extranet.
205.209.216.0/24 | Drop Copy 4.0 Market Segment Gateway Source Range Drop Copy 4.0 Convenience Gateway Source Range |
205.209.218.0/24 | Drop Copy 4.0 Market Segment Gateway Source Range Drop Copy 4.0 Convenience Gateway Source Range |
Once certified, and upon customer request, the account manager will provide the following information:
For Drop Copy 4.0 Convenience Gateway target sessions: new SessionID, IPs, security credentials, and port
For Drop Copy 4.0 Market Segment Gateway target sessions (once the new iLink architecture has been implemented): new SessionID, IPs, security credentials, and port; customers will receive a unique IP pair for each MSGW instance.
The $500/month surcharge will apply for a new Drop Copy 4.0 Group request.
The first Drop Copy 4.0 Group is free. Each subsequent Drop Copy Group costs $500/month.
Note: iLink MSGW source session messaging will only be supported on the new Drop Copy 4.0 implementation.
Messaging
Drop Copy 4.0 provides an application-level session for customers to receive real-time iLink messages. Drop Copy 4.0 does not support order entry; order entry messages submitted on the Drop Copy 4.0 session will be rejected with a Session Level Reject (tag 35-MsgType=3) message.
Standard Header
Tag 369-LastSeqNumProcessed will be updated for the following administrative messages:
Logon (tag 35-MsgType=A)
Test Request (tag 35-MsgType=1)
Heartbeat (tag 35-MsgType=0)
Drop Copy Convenience Gateway sessions will continue to disseminate tag 57-TargetSubID=G for all messages sent from the client system to CME Globex. For Drop Copy Market Segment Gateway sessions, tag 57-TargetSubID will contain the tag 1300-Market SegmentID value.
Tag 369-LastSeqNumProcessed will be based on the value of tag 34-MsgSeqNum in the current incoming message request. The following scenarios outline impacts for the standard header on inbound messages:
Missing Tag | Drop Copy 4.0 Behavior |
---|---|
|
|
tag 34-MsgSeqNum | Session Logout |
tag 49-SenderCompID tag 56-TargetCompID tag 52-SendingTime | Session Logout |
tag 57-TargetSubID tag 142-SenderLocationID | Session Logout |
Tag Value Null |
|
tag 34-MsgSeqNum | Session Logout |
tag 43-PossDupFlag | Session Logout |
tag 49-SenderCompID | Session Logout |
tag 52-SendingTime tag 57-TargetSubID tag 142-SenderLocationID | Session Logout |
Invalid Tag Value |
|
Tag 34-MsgSeqNum | Session Logout |
Tag 43-PossDupFlag | Acknowledgment |
Tag 49-SenderCompID | Session Logout |
Tag 52-SendingTime | Session Logout |
Tag 57-TargetSubID | Session Logout |
Standard Trailer
The client session will ungracefully disconnect when a non-numeric value greater than three characters is submitted.
Administrative Messages
Administrative messages are subject to messaging controls.
Logon (tag 35-MsgType=A)
If a session establishes a TCP socket connection without initiating a logon in 60 seconds, the connection will be disconnected.
The following scenarios outline impacts for the Logon (tag 35-MsgType=A) message:
| Drop Copy 4.0 Behavior |
---|---|
Missing Tag |
|
tag 98-EncryptMethod | Acknowledgment |
tag 108-HearbtInt | Session Logout |
tag 34-MsgSeqNum | Session Logout |
Tag Value Null | |
tag 96-RawData tag 98-EncryptMethod tag 108-HearbtInt | Session Logout |
Invalid Tag Value |
|
tag 98-EncryptMethod | Acknowledgment |
tag 141-ResetSeqNumFlag | Acknowledgment |
For the in-session Logon, customers will not be able to retrieve messages from the previous day's trading session using the Fix Resend Request (35=2).
Customers should leverage tag 789-NextExpectedMsgSeqNum to determine the valid logon sequence number when recovering from multiple unsuccessful logons attempts.
Heartbeat (tag 35-MsgType=0)
Logout due to missing heartbeat
If the Heartbeat (tag 35-MsgType=0) message is not sent after the heartbeat interval, the client system will receive a Test Request (tag 35-MsgType=1) message followed by a Logout (tag 35-MsgType=5) message.
The client session will be logged out if the heartbeat interval is not valid (5 - 60 seconds).
The following scenarios outline impacts for the Heartbeat (35=0) message:
| Drop Copy 4.0 Behavior |
---|---|
Missing Tag |
|
tag 34-MsgSeqNum | Session Logout |
Test Request (tag 35-MsgType=1)
The following scenarios outline impacts for the Test Request (tag 35-MsgType=1) message:
| Drop Copy 4.0 Behavior |
---|---|
Missing Tag |
|
tag 34-MsgSeqNum tag 49-SenderCompID | Session Logout |
tag 142-SenderLocationID | Session Level Reject |
Tag Value Null |
|
tag 112-TestReqID | Session Level Reject |
FIX Resend Request (tag 35-MsgType=2)
Drop Copy 4.0 has a limit of 2500 messages per resend request. Requests exceeding the limit will be rejected.
The gap-filled message will include tag 43-PosDup=Y and tag 123-GapFillFlag=Y.
Drop Copy 4.0 supports both Basic and Enhanced Sequence Resend Logic. See the functional specification for more detail on basic and enhanced sequence resend logic.
FIX resend requests will be restricted to a 48 hour rolling window which begins at the Sunday start-up.
Messages requested as part of the FIX resend request that fall outside of this window will not be honored and the request will be rejected. However, the Session Level Reject will include a new tag that contains the correct starting sequence number from which a resend request can be issued for that trading day. The session reject error text will state 58="Resend Request Could Not Be Fulfilled."
Tag | FIX Name | Req | Format | Valid Values | Description |
---|---|---|---|---|---|
5024 | StartSequenceNumber | N | Int (9) | If a resend request is sent for messages with sequence numbers whose timestamps fall outside the rolling 48 hour window, this field in the reject response message will provide the first sequence number of the retrievable messages within that window. |
In the event of a failover after Sunday start-up, the FIX resend request may not be honored and the request will be rejected with a Session Level Reject.
Example
Time | Customer Message | CME Globex Message | 35 | 34 | 49 | 50 | 57 | 7 | 16 | 36 | 43 | 123 | 5024 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sunday 16:00 CT – Monday 16:45 CT – CME sent 2500 messages to Customer | |||||||||||||
Monday 16:45 CT – Tuesday 16:45 CT – CME sent 100 messages to Customer | |||||||||||||
At Tuesday 17:00 CT: | |||||||||||||
1 | Resend Request | 2 | 200 | OMADGFN | RMS | 68 | 1 | 0 | -- | -- | -- | -- | |
2 | Session Reject | 3 | 2601 | CME | 68 | RMS | -- | -- | -- | -- | -- | 2501 | |
3 | Resend Request | 2 | 201 | OMADGFN | RMS | 68 | 500 | 1500 | -- | -- | -- | -- | |
4 | Session Reject | 3 | 2602 | CME | 68 | RMS | -- | -- | -- | -- | -- | 2501 | |
5 | Resend Request | 2 | 202 | OMADGFN | RMS | 68 | 1000 | 2600 | -- | -- | -- | -- | |
6 | Session Reject | 3 | 2603 | CME | 68 | RMS | -- | -- | -- | -- | -- | 2501 | |
7 | Resend Request | 2 | 203 | OMADGFN | RMS | 68 | 2501 | 0 | -- | -- | -- | -- | |
8 | n | 2501 | CME | 68 | RMS | -- | -- | -- | Y | -- |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.