question

Upvotes
Accepted
100 5 6 7

RFA warm standby parameters

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"
treprfarfa-apiconfiguration
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

If my application gets disconnect by IPAdress1, will RFA lib automatically switch over to IPAddress2 without my application code doing anything?

Upvotes
Accepted
56.1k 145 45 65

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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Is there a simple c++ consumer example which handles failover(with on warm standby) ?

If you mean consumer example for Warm Standby, you can use any consumer example application (i.e. StarterConsumer, Consumer example). The Warm Standby failover is done by RFA, so there is no additional implementation required in application code.

Once the failover occurs, consumer application will receive unsolicited refresh and then update from new active server.

derek.li2 avatar image derek.li2 veerapath.rungruengrayubkul

no, i meant how to do failover by myself without relying on warm standby.

Upvotes
56.1k 145 45 65

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.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

How about RFA/Java? I configured startingActiveServer for primary and serverList for Standby. I am seeing user mount(connection) to primary and standby ADSs but OpenItens only count up on primary ADS. standby keeps "0" OpenItems.