Handling suspect message from ETA API

I'm using ETA C API in Linux.

I see that API returns dataState "RSSL_DATA_SUSPECT" and streamState "RSSL_STREAM_CLOSED" for invalid symbols.

  1. What are the dataState and streamState combinations that ADS can send that a client application need to re-subscribe a symbol ? Is it any combination that involves a dataState of "RSSL_DATA_SUSPECT" ?
  2. What are the use cases when ADS sends a "RSSL_DATA_SUSPECT" message to the client ?
  3. Is it possible for ADS to send a "RSSL_DATA_SUSPECT" for a subset of symbols served in a connection ?

Best Answer

  • nick.zincone
    Answer ✓

    Hi @RAJ,

    1. When you receive a streamState that is Open, this implies that you may still receive events for this stream. You should not need to re-subscribe. In the event where you receive a streamState that is Closed, this implies you will no longer receive any events. In this case you will need to re-subscribe. That being said, a Closed state can occur if you are not entitled to see the data, the data is not found, etc. In this case, re-subscribing would likely continually cause a Closed status.

    2. The use cases may be dependent on the data source. However, you will typically see a Suspect upon a "Timeout", "Not Entitled", "Not Found".

    3. A status message occurs for a specific symbol. However, there is the concept of "Item Group Use" where "You can use item groups to efficiently update the state for multiple item streams via a single group status message (instead of using multiple, individual item status messages". Refer to the Item Group Use section with the Advanced Messaging Concepts outlined in the ETA C Developers Guide.

Answers

  • Hi @RAJ,

    You may also want to check "Single Open and Allow Suspect Data Behavior" chapter in ETA developers guide. These options can be used to specify desired item recovery and state transition information.