Heartbeat between ADS and downstream SDK APP

gang.chen1
gang.chen1 LSEG
edited August 26 in EMA

Hi Team,

client is using EMA SDK connecting to ADS, they want to know is there any Heartbeat between ADS and downstream SDK APP ? What is the frequency and format of heartbeat if there is ?

Thanks

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @gang.chen1

    Thank you for reaching out to us.

    Yes, there is a ping mechanism (heartbeat) between ADS and the SDK. The interval is configured on the client and server side. It could be 10-20 seconds. For more information, please refer to the Section 10.12 Ping Management in the ETA Developer Guide.

    However, EMA handle a ping mechanism on behalf of the application. You can verify this by enabling the XmlTracePing or XmlTracePingOnly configuration in the EMA configuration file.

  • Hi Jirapongse,

    Thanks for your prompt reply.

    based on the default setting of <ConnectionPingTimeout value="30000"/> and Ping Management "Heartbeat messages are typically sent every one-third of the pingTimeout", does it mean the connection will switch to the other ADS if Channel.ping returns FAILURE 3 times ?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    The API will cut the connection if it missed three ping messages. Then, it may reconnect to the same server or failover to other ADS servers.

  • Thanks , any parameter could control it reconnect to the same server or failover to other ADS servers ?

  • Jirapongse
    Jirapongse ✭✭✭✭✭
    edited August 26

    EMA uses the ChannelSet configuration. If it can't connect to the current server, it will failover to the next server.

  • Hello @gang.chen1

    The heartbeat can be configured on the server side with the following ADS configurations:

    !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    !
    ! *ads*"${port}"*serverToClientPings : True
    !#help
    ! serverToClientPings: { True, False }
    !
    ! Enable RSSL pinging from the ADS to the application.
    !
    ! Default value: True
    !#end

    !
    ! *ads*"${port}"*clientToServerPings : True
    !#help
    ! clientToServerPings: { True, False }
    !
    ! Enable RSSL pinging from the application to the ADS. After pingTimeout
    ! seconds without receiving a message or ping from the application,
    ! the ADS will disconnect the application channel.
    !
    ! Default value: True
    !#end


    ! *ads*"${port}"*pingTimeout : 30
    !#help
    ! pingTimeout: { 3 - N seconds }
    !
    ! Maximum ping timeout in seconds the ADS will allow from an RSSL client
    ! application. If clientToServerPings is enabled, the negotiated ping timeout
    ! is the maximum time period in seconds the ADS will allow to not receive a
    ! message or ping from an RSSL client application before disconnecting the
    ! channel.
    !
    ! Default source-side value: 6
    ! Default client-side value: 30
    !#end

    ! *ads*"${user}"*pingInterval : 30
    !#help
    ! pingInterval: { 1 - N seconds }
    !
    ! The number of seconds between ping messages. This value is passed to
    ! the SSL API which negotiates the ping interval and ping timeout values
    ! with the other side. The connection will be broken (and downstream
    ! consumers will be notified) if no message is received for ping timeout
    ! seconds (ping timeout is normally equal to three times the pingInterval).
    !
    ! This parameter is only applicable for SSL users. For RSSL users, refer
    ! to pingTimeout and minPingTimeout in the ADS component and port configuration.
    !
    ! Default value: 30
    !#end