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.
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.
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.