I was wondering if you could help us diagnose an issue we are experiencing with Elektron Connect.
In our application we subscribe to all configured RICs and then react to received events from Elektron. In most cases we get data update events but often get a Stream Close event. In this instance we unsubscribe and resubscribe to the RIC. This seems to work fine in most cases.
However, it seems that occasionally our connection/subscription gets severed on Elektron side, and we get a mass of Stream Closed events, for all RICs. We try to resubscribe to the RICs but it seems that in this scenario the resubscription doesn’t take effect. This results in the service not getting any updates and we have to restart it completely.
We had an instance of this this morning at 01:04 UTC on one of our connections.
(License ID 357365, ILA #07B3A4)
Would you be able to investigate on your side what occurred around that time for this connection?
Also, do you have any idea what is potentially happening here?
If you receive an event Stream closed for multiple instruments that were previously streaming fine (as opposed to a Closed as the initial response when 1st requested), then you should be able to re-request it.
However, if you are not capturing the connecting events/login stream state, then you may not be aware whether the connection is up and ready to process requests.
Also, are you registering interest in and handling connection events - OMMConnectionIntSpec? If not, you can see an example of this in the RFA Consumer example which is included in Examples\Consumer folder of the RFA SDK.
Please note that once a connection is re-established, RFA will re-login on behalf of the application using the same credentials used during the initial login.
As this is primarily a connectivity/service issue - you would need to raise a ticket with Refintiv Helpdesk to investigate the reasons for the service failures/disconnects.
On this occasion, I have raised a ticket on your behalf and someone should be in touch soon.
In terms of why the application you may not be able to resubscribe immediately afterwards; it could be that the EC service has not yet recovered and you are not logged or the EC service has recovered but the ELEKTRON_DD (or whatever the service is called on EC) has not yet recovered - when you re-request your instruments.
Can you please advise exactly when you re-subscribe after the closed events? e.g. do you wait till re-connected and logged in again before resubscribing? Do you wait for and see a valid Login Accepted response message from Elektron Connect before making the re-request?
Please provide more details about the re-subscribe scenario implementation.
The following article may offer some additional useful information RFA Recovery and Fail-over | Refinitiv Developers
I never reconnect.The login request is only sent once at the start of the service.
To re-subscribe I unregisterclient and then call registerclient.
When we get the Event Stream Closed event:
1. Why do we get it?
2. How should we handle it exactly in the ProcessEvent method?
An event stream closed indicates that streaming data for that particular instrument is not available. Hopefully, the EC team can explain why the data is no longer available - as was the case for you this morning at 01:04 UTC.
However, I note you said this happened for one of your connections - so did other applications/connections continue working fine?
You should wait to see what the EC team have to say, however, if only 1 application experienced issues and others worked fine - then this could an application-level issue.
Do you receive a Closed Event for the Login message - are you capturing and reporting any such event? If so, then you should wait till logged back in again - a closed Login stream means that you have been logged out from the server.
This is most likely our implementation. I am just trying to work out where the issue is and how we should handle Event Stream closed messages in the ProcessEvent method.
We subscribe to thousands of RICs we keep track of all the subscription handles.
I did not see any messages indicating that the login handle has been closed.