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

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials

question

Upvotes
Accepted
3 1 2 4

The server committed a protocol violation. Section=ResponseStatusLineSection=ResponseStatusLine

We have an issue when calling HistoricalReference (1 ident per call, but mulit-threaded)

2017-11-19 14:51:36,708 ERROR RetrieveRicFromHistoricalReference - Account: 0 xxx.CalculationEngine.Logic.RetrieveRicFromHistoricalReferenceJob - Cannot retrieve RIC for 301768793

ThomsonReuters.Dss.Api.TransportException: An error occurred while sending the request. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The server committed a protocol violation. Section=ResponseStatusLineSection=ResponseStatusLine

any help appreciated

/// <summary>
        /// Equities the search.
        /// </summary>
        /// <param name="transaction">The transaction.</param>
        /// <param name="identifier">The identifier.</param>
        /// <param name="identifierType">Type of the identifier.</param>
        /// <param name="exchange">The exchange.</param>
        /// <param name="date">The date.</param>
        /// <returns>The searched rics with status</returns>
        private RicsWithStatus EquitySearch(Transaction transaction, string identifier, IdentifierType identifierType, string exchange, DateTime date, ExtractionsContext context)
        {
            // Setup the request...
            var extractionResult = context.ExtractWithNotes(
                new HistoricalReferenceExtractionRequest
                {
                    IdentifierList = new InstrumentIdentifierList()
                    {
                        InstrumentIdentifiers = new[] { new InstrumentIdentifier { Identifier = identifier, IdentifierType = identifierType } },
                        UseUserPreferencesForValidationOptions = false,
                        ValidationOptions = new InstrumentValidationOptions
                        {
                            AllowHistoricalInstruments = true,
                            AllowOpenAccessInstruments = true
                        }
                    },
                    Condition = new HistoricalReferenceCondition
                    {
                        StartDate = date.ToUniversalTime(),
                        EndDate = date.ToUniversalTime()
                    },
                    ContentFieldNames = new[]
                        {
                            "ISIN", "RIC", "Market MIC", "Currency Code", "Exchange Code"
                        }
                });


            var contents = extractionResult.Contents;


            var withRic = contents
                .Select(x => x.DynamicProperties)
                .Where(x => x.ContainsKey("RIC"))
                .Where(x => !string.IsNullOrEmpty(x["RIC"] as string));
            if (contents.Count == 0)
            {
                BusinessExceptionManager.AddError(Functionality.RICRETRIEVE, SubFunctionality.HISTORICALREFERENCE, BusinessObjectType.TRANSACTION, BusinessExceptionType.NO_RIC, null, transaction.Id);


                return new RicsWithStatus
                {
                    Status = "NH"
                };
            }
            else if (withRic.Count() == 0)
            {
                BusinessExceptionManager.AddError(Functionality.RICRETRIEVE, SubFunctionality.HISTORICALREFERENCE, BusinessObjectType.TRANSACTION, BusinessExceptionType.NO_RIC, null, transaction.Id);


                return new RicsWithStatus
                {
                    Status = "NT"
                };
            }
            else
            {
                return CreateRicWithStatus(transaction.TradeCurrency, exchange, withRic);
            }
        }

dss-rest-apidssdatascope-selectapihistorical
icon clock
10 |1500

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

Can you use a fiddler as a proxy?

Then, set the proxy to the extraction context.

 WebProxy proxy = new WebProxy("http://127.0.0.1:8888/", true);
 extractionsContext.Options.Proxy = proxy;
 extractionsContext.Options.UseProxy = true;

I would like to see the HTTP request and response messages when the problem occurred.

1 Answer

Upvotes
Accepted
3 1 2 4

we have resolved the issue.
to resume: we needed to fix outgoing proxy settings.
we are using AWS to get faster downloads, so the AWS Ip's/urls needed to be white-listed in our configs.
Thanks for your support

-MWA

icon clock
10 |1500

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