For a deeper look into our DataScope Select SOAP API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
1 0 1 2

Datascope API - Cannot create a extractioncontext and fetch rows

While trying to fetch data using datascope API - post establishing the ExtractionContext and trying to extract rows it failed.

Reuters.extractionsContext.Extract(extractionRequest) - did not return any rows as well ran for almost more than 4 hours and automatically it got cancelled.

Exceptions details below:

ExceptionAssembly ThomsonReuters.Dss.RestApi.Client, Version=10.6.714.0, Culture=neutral, PublicKeyToken=c1b530b4d66eacdd ExceptionType System.Threading.Tasks.TaskCanceledException ExceptionGroup System.Threading.Tasks.TaskCanceledException at ThomsonReuters.Dss.Api.Core.HttpOData.Http.HttpClientAdapter+<HandleEventNotifications>d__11.MoveNext ExceptionCount 1 ExceptionMethod ThomsonReuters.Dss.Api.Core.HttpOData.Http.HttpClientAdapter+<HandleEventNotifications>d__11.MoveNext ExceptionHasStack True ExceptionMessage A task was canceled.

Can ome one please let me know what will be right way to handle these exceptions. is there a way to control the timeout for the same.

dss-rest-apidatascope-selectdss
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.

1 Answer

Upvotes
Accepted
38.1k 71 35 53

Reuters.extractionsContext.Extract(extractionRequest) is synchronous. It returns when the extraction is completed. However, if the exception happens during this call, it will not return. However, the extraction may still be processed on the server and the application is unable to cancel or track down the status of the extraction. The things which the application can do are:

  • Query all active jobs on the server to find the requested monitor URL. Then use this URL to cancel and continue tracking its status
  • Or, send another extraction request to the server. However, this can create an additional workload on the server

To avoid this, I suggest to use a Reuters.extractionsContext.ExtractStart(extractionRequest) method instead. The "Start" method returns an IAsyncJob which in turn can be used to track the progress or cancel the extraction. Therefore, when the problem happens, the application can decide to cancel the job or keep monitoring its status.

For more information, please refer to Key Mechanisms in the Async -> Jobs section.

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.

Click below to post an Idea Post Idea