question

Upvotes
5 2 4 8

Eikon API unresponsive

Some times I find that when using the Eikon .NET api, the application appears to hang. I get the DataServices.StateChanged event, which indicates that Eikon is "Up", and DataServices.IsInitialized is true; if I proceed to run the code from the timeseries example it will also indicate that the TimeSeries service is Up. When I create a request and send it, it will never fire the DataReceivedCallback.

Usually the code runs fine, and I find in this situtation that the only way to get it to work properly is to kill all eikon processes and re-run the code. Note that while the .NET api is unusable, the excel add in and the Eikon GUI are both fully functional. Anybody have any ideas as to what the underlying problem might be?

Just an update - I tried a SymbolsRequest and that worked fine. I then enabled logging in app.config, and saw this printed to the console:

[ERROR] ThomsonReuters.Desktop.SDK.DataAccess.TimeSeries.Impl.ServiceCallbackManager - Error NotPermissioned received from TimeSeries data service :
[WARN]  ThomsonReuters.Desktop.SDK.DataAccess.TimeSeries.Impl.ServiceCallbackManager - OnError callback received on unregistered request (Id=1)

I guess that's the root problem - has anybody seen this before? While I could fix this temporarily by just killing all the eikon processes it might take a while to be able to replicate.

eikonapieikon-app-studio.net
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Also the COM api (specifically Dex2 at least) is fully functional. I feel there's probably some function I need to trigger in the .NET api to get it to reset some persistent state - it thinks the Udap connection or Eikon bus is live but it is actually dead.

1 Answer

Upvotes
219 1 3 7

Hi @Charles, I just looked at the downloadable samples and it appears to contain code that causes these problems. The instance of the class is not referenced so the garbage collector can delete the instance and in turn delete the contained time series request or subscription:

private static void TimeSeriesRequest()
        {
            (new TimeSeriesRequestExample(timeSeries)).Launch();
        }

Data is received but there is no one to handle the callback.The solution is to modify the example and assign the instance of TimeSeriesRequestExample to a static variable.

This should be applied to other examples too.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

While I agree that seems problematic, it doesn't appear to be the cause of any problems in my case. If I change the sample and add an OnStatusUpdated callback, then that gets rid of the warning about an unregistered request, and is called with a status that indicates NotPermissioned (as per the log). I ended up just giving up and killing all Eikon processes and re-logging in, and it worked fine as per normal. This seems to be some problem where the session times out or something and starts giving bogus NotPermissioned errors.

@Charles

Can I get the full debug log when the problem occurred?

Click below to post an Idea Post Idea