If I create two sessions within RFA application, and subscribe to same instrument on both sessions, does RFA open two streams of data from ADS, or will it cache the instrument locally within session or connection layer?
It depends on configurations.
For example, the application has two sessions (session1 and session2). In the configurations, both sessions use the same connection (connections) to connect to the same ADS. The behavior depends on the shareConnections configuration under the session. The default value is false.
With the default value of shareConnections (False), each session will have its own connection. Therefore, when requesting the same item, each session will send its own request to the server on its own connection. In total, RFA will send two requests to ADS; one request per connection.
However, if the value of ShareConnections is True, both sessions will share the same connection. When requesting the same item, RFA will send only one request to ADS, and then it will fanout the retrieved data to the sessions.
For more information, please refer to section 14.5.7 Connection Sharing in the RFA Java Developers Guide.