Correct usage of the Timeseries API after a timeout when waiting for Eikon login

When DataServicesFactory.Create() is called, Eikon Terminal will be automatically started up by the API, bringing up the login dialog. Our question is how to correctly handle when the user is not entering the credentials for a prolonged time.
This is the flow of status updates coming via the callbacks registered in DataServicesFactory.Create():
Virtually immediately:
- IConnectionInformation.State=StartingInitialization, Message=Starting Data Services initialization.
- IConnectionInformation.State=LaunchingEikon, Message=Try start/wake up Eikon.
After three minutes:
- AggregateException.Message=Unable to start automatically Eikon after 60 attempts. Please make sure Eikon is correctly installed on this computer.
Apparently this error is a fatal one, i.e. logging in afterwards will not lead to a success callback with a valid IDataServices object passed in.
We are currently handling this situation by calling DataServicesFactory.Create() again, which will then lead to the above status updates again. We will repeat this until the user has finally logged in, so Create() may be called quite a number of times (with about three minutes time inbetween)
The problem however is, that if the user does not log in for hours or even days, the computer is starting to become unstable, probably due to a resource exhaustion of some kind.
We are wondering if calling DataServicesFactory.Create() subsequently (if the first call fails) from the same process could be the culprit.
What would be the proposed way of cleanly handling above situation?
Best Answer
-
Now I'm not quite sure I understand the scenario you describe. In either of the events (automatic logout on weekends or logout due to exclusive sign on event) you already have IDataServices object initialized. When either of these events occur your application will be notified via StateChanged event of IDataServices. Are you saying that when you receive StateChanged event and IDataServices.State value is Down you immediately call DataServicesFactory.Create()? I don't see the need to do so. In either of the events you mentioned Eikon is still running, albeit the user is signed out. When the user signs back in IDataServices object will detect that and raise StateChanged event and IDataServices.State will be set to Up.
Does this make sense to you? Or am I missing something?
By the way, if the user setup silent login, the user will not be prompted to enter Eikon credentials when signing back into Eikon after logout.0
Answers
-
I must say this is not a very common scenario. Personally I've never previously seen it in practice. In my experience the absolute vast majority of users use silent login. They check the box saying "Sign me in automatically" when first entering their Eikon credentials and never need to type in username and password again.
My only suggestion is to abandon attempts at calling DataServicesFactory.Create() after a few tries until the user signs into Eikon. To establish the latter you could pop up a dialog from your application informing the user that he or she needs to sign into Eikon and resume calling DataServicesFactory.Create() once the user hits OK in that dialog.0 -
Thanks Alex,
we do see this situation arise quite a lot. One common example is the automatic log out from Eikon Terminal that usually takes places after a prolonged period of inactivity. This is mostly happening on weekends. Trying to recreate the API connection via the above method leads to the observed problems.Another example of this happening is when a user logs in to Eikon from some other computer which in turn disconnects the original connection.
Do you know of any way to check if a user is logged into Eikon which does not involve calling DataServicesFactory.Create()?
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 613 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 248 ETA
- 552 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 637 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 191 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 88 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛