can someone tell me if my RFA warm standby parameters are set up correctly?
\Logger\AppLogger\useInternalLogStrings = true \Logger\AppLogger\fileLoggerEnabled = false \Connections\Connection_RSSL\connectionType = "RSSL" \Connections\Connection_RSSL\traceMsgToFile = false \Connections\Connection_RSSL\rsslPort = "Port" \Connections\Connection_RSSL\serverList = "WarmStandbyGroup" \StandbyLists\WarmStandbyGroup\serverList = "IPAddress1,IPAddress2, IPAddress3"
Yes, the configurations look correct.
If ADS servers support warm standby, RFA will connect to all servers in the serverList. You can verify the server support from the login refresh in RSSL tracing. The value of SupportStandby must be one.
<refreshMsg domainType="RSSL_DMT_LOGIN" streamId="1" containerType="RSSL_DT_NO_DATA" ...> <key flags="0x26 (RSSL_MKF_HAS_NAME|RSSL_MKF_HAS_NAME_TYPE|RSSL_MKF_HAS_ATTRIB)" ...> <attrib> <elementList flags="0x8 (RSSL_ELF_HAS_STANDARD_DATA)"> ... <elementEntry name="SupportStandby" dataType="RSSL_DT_UINT" data="1"/> ... </elementList> </attrib> </key> <dataBody> </dataBody> </refreshMsg>
With WarmStandby, one is designated as an active server and the rest are standby servers. RFA will internally request the same items from both active and standby servers.
The consumer application receives updates only on the item streams opened on the active server; it does not get updates, status, unsolicited refreshes, and generic messages from the standby server(s). If the active server fails, RFA notifies one of the standby servers that it is the new active server. That server then begins sending data without the consumer application needing to re-request the items.
For more information, please refer to 16.2 Warm Standby in RFA Developers Guide.
RFA uses session to manage the connections. The RFA application can't directly manage the connections. The connections can be disconnected by releasing the session and then reconnected by acquiring a new session. However, this method will increase the complexity of the application.
If you would like to directly manage the connections, I suggest to use other APIs, such as UPA or EMA.