When you receive a StatusMsg in EMA it should contain an OMMState object.
If you refer to the documentation for OMMState you will note it contains a DataState, StatusCode and StreamState indicators
DataState represents validity of the Data - i.e. is the Data OK or is it Suspect (e.g. Stale)
StreamState represents the state of the actual Data stream i.e. is the Stream still Open or has it been Closed,or is it Snapshot only (NonStreaming). So, for a Stale item you could have StreamState=OK, but DataState=Suspect
StatusCode is qualifier which tries to provide a reason for the current State e.g. Source Unknown, NotAuthorized, TimeOut etc.
The OMMState can also include additional StatusText explaining the current state - the text can vary depending on the source / provider and existing string values could change over time. Therefore you must NOT base any programming decisions on the value of the Status Text - it should only be used for information / logging purposes
For a full list of StatusCodes, StreamStates and DataStates please refer to the Reference documentation which is included with the Elektron SDK package Ema/Docs/refman/emajava folder or online at:
Also when I am trying to run the Elektron API in Multithreading mode I am getting the below error
SelectableBiDirectionalQueue.write: failed, execption=null stacktrace=[Ljava.lang.StackTraceElement;@52e4941Can you please help me
I have personally never seen the F56 message - but it would be fair to assume that somewhere along the connection between your app and the server, there has been loss of communication e.g. no heartbeat being received from the host/process.
As mentioned previously, the actual text is for informational / reporting purposes only. The Data and Stream States are the more important ones.