RFA Java. Logged in but then only "Connection ping timeout"s

Hi all,

I am establishing a connection to our ADS instance, but after I receive the successful login response, the logs only show connection ping timeouts.

If we look in our ADS, we notice that our application is connected, but the ADS does not receive any ping messages, so it will kill the connection after a while.

Our application in turn will then reconnect again, but the connection does not last again, so we are somewhat stuck in a loop.

I would expect the SDK to take care of the ping messages by itself, specially since there is nothing about them in the tutorials.

Does anyone know what we are doing wrong?

Best Answer

  • wasin.w
    wasin.w admin
    Answer ✓

    Hi @astaphorsius

    Basically,
    the Ping is used for detecting the state of the connection between the API and ADS
    server. When both sides are connecting, they will send pings to each other, and
    waiting for ping reply. If there is no problem between them, the sending side
    will expect the ping reply from the receiving side within the ping timeout
    value. If the ping reply does not come from receiving side within ping timeout
    value, it is interpreted as problem at the receiving side, and the connection
    is dropped.

    The RFA API manages the Ping mechanism for the application. A ping-timeout
    problem could be caused by a network problem (between the API and ADS) or the application was run out of
    CPU time due to heavy load on the machine or the RFA thread exits abnormally or
    blocked.

    To let us verify this issue in detail, please give us the following information

    1. The version of RFA Java that encounters this problem
    2. Does the application connect to ADS via VPN or firewall or other network components?
    3. The
      RFA trace file when the problem occurs. The
      RFA trace file contains incoming/outgoing messages between the API and ADS server. It will let me verify the connection issue in detail

    You can configure the following RFA Java configurations
    to enable the log file

    • <namespace>/Connections/<Connection Name>/ipcTraceFlags = 7
    • <namespace>/ Connections/<Connection Name>/mountTrace = True
    • <namespace>/ Connections/<Connection Name>/logFileName=<path to log file>
    • <namespace>/ Connections/<Connection Name>/traceMsgDomains=ALL

    Example:

    <node name="rsslConnection">
    <map>
    <entry key="connectionType" value="RSSL"/>
    <entry key="serverList" value="ad"/>
    <entry key="portNumber" value="14002"/>
    <entry key="ipcTraceFlags" value="7"/>
    <entry key="mountTrace " value="True"/>
    <entry key="logFileName" value=".\logs\RSSL_%U.log"/>
    <entry key="traceMsgDomains" value="ALL"/>
    </map>
    </node>