Taker API Session Management
Clients will initiate FIX sessions with the EBS FIX engine. There will be separate sessions for Market data and Order management.
Session Recovery
Persistence is not supported. Clients are expected to specify ResetSeqNumFlag = 'Y' on every Logon to force a session reset. Logons which do not specify ResetSeqNumFlag='Y' will be rejected with a Logout message, the Text field will indicate "Session Reset Required".
Logon (35=A)
A single SenderCompID/TargetCompID may have only one active FIX connection at a time. If a duplicate Logon request for the same SenderCompID/TargetCompID is received while a FIX connection is active, there will be no response to the new Logon request.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
98 | EncryptMethod | Y | 4.4 | Always '0' = None |
108 | HeartBtInt | Y | 4.4 | Heartbeat interval in seconds. Must be > zero. |
141 | ResetSeqNumFlag | Y | 4.4 | Y = Indicates that both sides of the FIX connection should reset their sequence numbers. Indicates that gap recovery is not requested for this session. |
553 | Username | Y | 4.4 | User name assigned by EBS to a user. |
554 | Password | Y | 4.4 | Password associated with the Username. |
Failed Logon Attempts
If a Client Logon request has passed network layer authentication and initial message validation, but the Logon Request cannot be completed for any reason, EBS will reply with a Logout message indicating the reason for the Logon failure in the Text field. The Logon request must include a valid SenderCompID/valid TargetCompID combination. After sending the Logout message, EBS will immediately terminate the network connection.
Connection attempts which do not pass network layer authentication will not be responded to. Similarly, mal-formed Logon messages (missing required field, invalid data type, invalid header or trailer) will be ignored.
Clients are cautioned not to repeatedly attempt to Logon following an unsuccessful Logon attempt. Client applications should wait a configurable time interval before re-attempting a successive logon. Logon attempts more frequent than the EBS provided configured maximum logon frequency will not be responded to.
Heartbeat (35=0)
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
112 | TestReqID | N | 4.4 | Included when the Heartbeat is in response to a TestRequest message. Echoes back the TestReqID of the TestRequest message. |
Test Request (35=1)
Sent to request a Heartbeat from the other side. FIX protocol recommends using the current timestamp as the TestReqID.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
112 | TestReqID | Y | 4.4 | Unique identifier of the Test Request Message to be echoed on the Heartbeat message sent in response to the Test Request Message. |
Resend Request (35=2)
ResendRequest messages are not supported. If sent by a Taker EBSÂ will respond with a Logout message with SessionStatus=104 [Session sync error]. EBSÂ will not send this message type.
Sequence Reset (35=4)
SequenceReset messages are not supported. Any SequenceReset messages received will be responded to with a Logout message. EBS will not send this message type.
Session Level Reject (35=3)
A generic message which can be used by either side to reject a FIX message which fails session-level validation. It contains fields to indicate the FIX MsgType and FIX tag of the invalid data.
If a message contains multiple session level rule violations which would cause rejection, only the first detected error will be indicated in the Reject message. To avoid rejection loops, errors in a Reject message should not themselves be rejected.
A Session Level Reject message is not sent when a FIX message cannot be decoded or fails CheckSum or BodyLength validations. In this case, it must be assumed that the communication channel has become corrupted. The recipient of the malformed message will send a Logout message with reason code indicating "Malformed message received", and will then terminate the session, without waiting for a Logout Ack.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
45 | RefSeqNum | Y | 4.4 | FIX sequence number of the rejected message. |
372 | RefMsgType | N | 4.4 | Message type of the rejected message. |
371 | RefTagID | N | 4.4 | The FIX tag number of the offending field. (Only the first tag number with an error will be provided.) |
373 | SessionRejectReason | N | 4.4 | Code to identify reason for the Session level Reject message. |
58 | Text | N | 4.4 | Free-form text message to explain the reason for the rejection. |
Logout (35=5)
The Logout message may be sent by either party to initiate proper, controlled shutdown, or to indicate that an unrecoverable connectivity error has occurred. A good practice is to issue a TestRequest and receive the corresponding heartbeat before Logout.
Logout may occur due to receipt of a malformed message, a heartbeat timeout, or a scheduled shutdown period. To assist with troubleshooting, a Logout reason should be provided on each Logout via the free-form Text field. After sending the Logout Request, the logout initiator should not send any additional messages other than responding to an incoming ResendRequest.
When one side receives a Logout request from the other, it should flush any queued messages and then respond with the Logout message. This lets the other side know that it will not receive any more messages from the other and that it can close its connection. A configurable timeout will be implemented, so that if a Logout response is not received after that time, EBS will unilaterally close the connection.
Tag | Field Name | Req | Ver | Comments |
---|---|---|---|---|
1409 | SessionStatus | N | 5.0* | Status of FIX session at the time of logout. 3 – New session password does not comply with policy 5 – Invalid username or password 6 – Account locked/disabled 8 – Password expired 99 – Max number of connections exceeded 100 – Unexpected internal event 101 – System shutdown 102 – Sequence number reset required (Custom) 103 – Session encryption not supported (Custom) 104 – Session sync error (Custom) 106 = Unsupported heartbeat interval (Custom) 107 = Session timed out (Custom) 108 = Session recovery not supported (Custom) |
58 | Text | N | 4.4 | Human-readable string indicating reason for logout. Supported logout reasons: Normal (scheduled) logout initiated. Logout request acknowledged. Malformed message received. Heartbeat timeout. Session Reset required. Throttle Violation - Max connections or message rate exceeded |
Â
Â
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.