Eikon .NET SDK - What is the expected behavior when closing Eikon?

When using Eikon .NET SDK in a custom application, what is the expected behavior when the user closes Eikon application?
I can see that when I call DataServicesFactory.Create and Eikon is not already running, connectionCallback event returns the following IConnectionInformation states: StartingInitialization, then LaunchingEikon, then it may or may not return RequestingConnection, and finally after Eikon launches it returns Connected. So far so good. Now if I check IRealTimeService, ServiceInformation.State is Up.
If I close Eikon, I don't see connectionCallback event raised. However I do see ServiceInformationChanged event raised on IRealTimeService, which returns ServiceInformation.State as Closing.
If I restart Eikon from the shortcut, I don't see any events.
If instead of starting Eikon from the shortcut I call DataServicesFactory.Create, I see Eikon application launching and connectionCallback event returns IConnectionInformation states: StartingInitialization, then LaunchingEikon, and then after Eikon launches it returns RequestingConnection. This appears to be a terminal state. IRealTimeService.ServiceInformation.State is still Closing, data subscriptions cannot be created and I don't see any way of recovering from this state.
Is this behavior intentional? When a user shuts down Eikon, is it supposed to create a terminal state for a custom application using Eikon .NET SDK? Or is there a way to recover from this state?

Best Answer

  • Not sure to understand all the workflow, but I can say what is not possible maybe it will answer your question :). When you close Eikon (not minimized) you lost the connection between Eikon and your Application (this is technically impossible to get the connection again then). The fact that the App start Eikon if not already started is only a conveniance.

Answers

  • Thanks Julien. If I understand correctly, shutdown of Eikon creates a terminal state for a custom application using Eikon .NET SDK. And the only way to recover from this state is to restart the process of the custom application, right?
  • This is quite unfortunate. EikonDesktopDataAPI library has the same behavior, and I've heard many clients complain about it. Shutdown of Eikon is a common occurrence, be it deliberate shutdown by the user or weekly shutdowns that we enforce. Client developers must work around this and Eikon .NET SDK makes such workaround non trivial. If we have no plans of changing the behavior, at least we need to document it. This behavior is completely unintuitive, and if it's not clear from the documentation, nobody can expect it.
  • Thanks for your feedback, I agree about this limitation, but it is very hard (maybe impossible) for us to fix it. You can see this behavior as: SDK needs Eikon started to work. And one feature is when you call Initialize/Create and Eikon is not started it starts Eikon. I am forwarding your issue to the team, maybe we can find a real solution.
  • Alex, I see this "auto-reconnect" feature as a new requirement. However, as Julien said, there is a technical challenge behind this simple workflow, we need to investigate and prioritize.
  • Alex, you can contact Jorge Santos for raising such requirements to product owners.
  • Julien, Denis, thanks a lot for your comments. Much appreciated. I will raise en enhancement request to Jorge.