Why UPA will not connect

I am trying to connect a UPA Consumer to a specific endpoint and when I run the connection and initialization I am getting the following:	
Error RSSL_RET_FAILURE (-1) (errno: 104) encountered with rsslInitChannel fd= 7. Error Text: <Impl/ripcsrvr.c:5912> Error: 1002 Could not read IPC Mount Ack. Connection attempt has failed. System errno: (104)
Then endpoint is currently able to run and get data with an RFA. So would there be an issue with the configuration of the endpoint to allow for OMM to communication with port trying to be used.

Best Answer

  • Hi @manning0218

    Could you share the connection configurations (hostname, port) you are using and what is the endpoint you tried to connect to?

    RFA supports two interfaces: MarketData interface (SSL connection) and OMM interface (RSSL connection). It is possible that your RFA application is using the MarketData interface connecting to endpoint via SSL connection. Using UPA application connects to legacy SSL port (i.e. 8101) of the server could generate this error as UPA doesn't receive correct connection response. If the endpoint is TREP or Elektron component which supports both interfaces, you can change the port used by UPA to a RSSL port such as 14002.

Answers

  • Hi @manning0218,

    I have a few questions about your setup.

    1. I noticed you included an "Elektron connect" tag within your post. Are you connecting through Elektron Connect? Can you provide a little more detail about your setup?

    2. Is this your application, or an example application? If it is not an example application, is it possible for you to try Tutorial 2 - Establishing a connection to a Provider within the developer portal?

    thanks.

  • I do not have access to the setup and am just given the enpoint to use, which does work with our previous applications and should work with this. As for the application I am trying to connect, it is part of the Training application for UPA. It is passing the initial connection for rsslConnect(). It is after a few iterations when the channel is trying to switch from RSSL_CH_STATE_INITIALIZING to RSSL_CH_STATE_ACTIVE.

  • Can you confirm the endpoint details? What port do you connect on?

  • I tried 14002 but there is nothing listening on that port. I have also tried where the ads port is located and am still having a a handshake error somewhere in the initializationg

  • Would you be able to download the SpeedGuide utility from the dev portal and try that? Although it is written in EMA Java, what you are encountering is possibly some connection detail issues and any TREP/Elektron client should work.

    Also, you mentioned your previous application does work. Do you have any connection details it is using?

  • The SpeedGuide utility (Nick's link above) is a good suggestion, the package includes a Windows executable. Using that will eliminate any question of your code or development environment, if it doesn't work we can look more closely at the connection parameters you are using and at the configuration of the ADS you are connecting to.

  • Hi @manning0218,

    As Veerapath explained above, it is possible that your RFA
    application works because it uses an SSL connection (port 8101) while your UPA
    application doesn’t work because it tries to connect via an RSSL connection
    (port 14002). Normally both should work because; by default ADS TREP components
    listen to these two ports (8101 for SSL connections and 14002 for RSSL connections). However, your TREP
    infrastructure may have been configured otherwise.

    Could you please ask your
    TREP administrator if it is the case? That would explain your issue.

    Also to help us to better understand the context, on the machine where you run your RFA application (the one that works), could
    you please execute the 2 following commands while the RFA application (only this one) is running and connected to the ADS?

    netstat -na | find "8101"
    netstat -na | find "14002"

    This will tell us what type of connection your RFA application
    is using. Here is an example:

    C:\>netstat -an | find "8101"

    C:\>netstat -an | find "14002"
    TCP 10.2.36.124:50228 10.2.43.49:14002 ESTABLISHED

    In this example you can see that there is no application
    using port 8101 and one using port 14002. This tells us
    that this application is connected via RSSL.