EMA C++ RDM Usage Guide : 3 Login Domain : 3.4 Special Semantics : 3.4.3 Multiple Logins
 
3.4.3 Multiple Logins
Enterprise Message API does not support multiple logins per OmmConsumer as login stream is opened internally by Enterprise Message API. If multiple logins are needed in the applications, users need to create additional OmmConsumer instances, one per login.
 
Whether or not a user is authenticated depends on how the provider is implemented. However, providers are required to respond to Login Request Messages in the following manner:
If the Login is accepted, the provider should send a Refresh message with StreamState = OmmState.Open, DataState = OmmState.Ok, and StatusCode = OmmState.None.
A login can be rejected or closed after it was originally accepted by sending a Status message with StreamState = OmmState.Closed (or OmmState.ClosedRecover if the user is allowed to attempt another login)and DataState = OmmState.Suspect.
If the provider closes the login stream, all other streams related to that login are implicitly closed without sending any item status messages to the consumer.
 
If the consumer application calls the OmmConsumer destructor, all streams related to that login of OmmConsumer are automatically closed without sending any item Close messages to the provider or a Status messages back to the consumer.
If a login stream is not open or was closed by either the consumer or the provider, the consumer must create a new OmmConsumer before sending another request message.