Page tree
Skip to end of metadata
Go to start of metadata

The Terminate message is sent to indicate that the sender is going to disconnect the TCP socket connection.

35=Terminate

TagNameBinary TypeBinary LengthReqEnumerationDescription
39011ReasonString4848N

Terminate reason details.

Will only be used for descriptive scenarios.

39001UUIDuInt648Y

Matches Establish.UUID used to establish the connection.

39002RequestTimestampuInt648Y


Time of request;  CME Group recommends using the number of nanoseconds since UNIX epoch (Jan 1, 1970) as the timestamp.

Outgoing response will match incoming Terminate.RequestTimestamp if sent in response to Terminate.

If sent in response to an incoming message, it will have the same RequestTimestamp from that message.

If sent unsolicited for auto port closure or volume controls (logout action), it will be set to the current system time.

39012ErrorCodesuInt162Y

0 - Finished: session is being terminated without finalization

2 - Unnegotiated: Sending any message when session has not been Negotiated 

3 - NotEstablished: Sending any message (except Negotiate) when session has not been established

4 - AlreadyNegotiated: NegotiationResponse was already sent; Negotiate was redundant

5 - NegotiationInProgress: Previous Negotiate still being processed; Wait for NegotiationResponse or timeout

6 - AlreadyEstablished: EstablishmentAck was already sent; Establish was redundant

7 - EstablishInProgress: Previous Establish still being processed; Wait for EstablishmentAck or timeout

8 - CMEAdministeredPortClosure: due to invalid number of Negotiate/Establish attempts being exceeded

9 - Volume Controls - exceeding TPS limit as defined for volume controls (logout action)

10 - InvalidNextSeqNo - value is not greater than the one last used for same UUID or value sent by the client is out of acceptable range (MIN, MAX)

11 - InvalidMsgSeqNo - value is lower than the last one used for the same UUID or value is not initialized to 1 at the beginning of the week or value sent by the client is out of acceptable range (MIN, MAX)

12 - InvalidLastSeqNo - value is lower than the last one used for the same UUID or value sent by the client is out of acceptable range (MIN, MAX)

13 - InvalidUUID: UUID value does not match current UUID or value sent by the client is out of acceptable range (MIN, MAX)

14 - InvalidTimestamp: Timestamp value does not match with RequestTimestamp sent by CME or value sent by the client is out of acceptable range (MIN, MAX)

15 - RequiredUUIDMisssing: null value in UUID field

16 - RequiredRequestTimestampMissing: null value in RequestTimestamp field

17 - RequiredCodeMisssing: null value in Code field

18 - InvalidSOFH: Invalid message length or invalid encoding type specified

19 - DecodingError: Incoming message could not be decoded

20 - KeepAliveIntervalLapsed: KeepAliveInterval has lapsed without any response so terminating session

21 – RequiredNextSeqNoMissing: null value in NextSeqNo field

22-RequiredKeepAliveIntervalLapsedMissing: null value in KeepAliveIntervalLapsed field

23 - Non-Negotiate/Establish message received when not Negotiated/Established

24 - TerminateInProgress: Previous Terminate still being processed; Wait for Terminate or timeout

25 - Other: any other error condition not mentioned above

26 - DisconnectFromPrimary: Backup session will be terminated as well

27 - TerminatedFromPrimary: Backup session will be terminated as well

28 - RejectSplitMsgsQueued: Messages queued due to split message penalty being rejected because of terminate or disconnect

29 - ExceededMaxNoOfSplitMsgsQueued: Reached threshold of messages queued due to split message penalty 

Termination code.


9553SplitMsgSplitMsg1N

0=Split Msg Delayed

1=Out of Order Msg Delayed

2=Complete Msg Delayed

Indicates if a message was delayed as a result of:

  • being split among multiple packets (0)
  • TCP re-transmission (1)
  • due to a previously submitted split or out of order message (2).

If absent then the message was not delayed, split, or received out of order.

When session has not been Negotiated at least once, re-Negotiate with a new UUID is required for the following tag 39012-ErrorCodes:

  • 2 - Unnegotiated: Sending any message when session has not been Negotiated 
  • 8 - CMEAdministeredPortClosure: due to invalid number of Negotiate/Establish attempts being exceeded
  • 18 - InvalidSOFH: Invalid message length or invalid encoding type specified
  • 19 - DecodingError: Incoming message could not be decoded
  • 28 - RejectSplitMsgsQueued: Messages queued due to split message penalty being rejected because of terminate or disconnect
  • 29 - ExceededMaxNoOfSplitMsgsQueued: Reached threshold of messages queued due to split message penalty