ODATA: SQL Server Integration Services Job failed. - Error: System.ObjectDisposedException: Cannot access a disposed object.
search cancel

ODATA: SQL Server Integration Services Job failed. - Error: System.ObjectDisposedException: Cannot access a disposed object.

book

Article ID: 248419

calendar_today

Updated On:

Products

Clarity PPM SaaS

Issue/Introduction

An SQL job which uses Microsoft SQL Services Integration Services is failing  due to issues in DWH_RIM_RISK.

[OData_DWH_RIM_RISK [43]] Error: System.ObjectDisposedException: Cannot access a disposed object.

Object name: 'System.Net.HttpWebResponse'.

   at System.Net.HttpWebResponse.CheckDisposed()

   at System.Net.HttpWebResponse.get_StatusCode()

   at Microsoft.Data.DataFeedClient.Http.WebRequestHelper.<GetResponseWithThreadSafeRetryAndImpersonation>b__0(HttpWebResponse response)

   at Microsoft.Data.DataFeedClient.Http.WebRequestHelper.GetResponseWithThreadSafeRetry(IWebRequest& request, Func`1 createWebRequest, Int32 retryCount, Int32 retrySleepInMilliseconds, Boolean isOAuth, Func`2 refreshRequestWithNewAccessToken, Func`2 getStatusCode)

   at Microsoft.Data.DataFeedClient.Http.WebRequestHelper.GetResponseWithThreadSafeRetryAndImpersonation(IWebRequest& request, DataFeedConnection connection, Func`1 createWebRequest)

   at Microsoft.Data.DataFeedClient.DataFeedCommand.ExecuteDbDataReader(CommandBehavior behavior)

   at System.Data.Common.DbCommand.ExecuteReader()

   at Microsoft.SqlServer.IntegrationServices.OData.ODataSource.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)

   at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPrimeOutput(IDTSManagedComponentWrapper100 wrapper, Int32 outputs, Int32[] outputIDs, IDTSBuffer100[] buffers, IntPtr ppBufferWirePacket)

  

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on OData_DWH_RIM_RISK returned error code 0x80131622.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.

Environment

Release : 16.0.2

Component : Clarity Data Warehouse

Cause

Using Postman, the following exception is returned there:

<?xml version='1.0' encoding='utf-8'?>
    <code>ServerErrorException</code>
    <message lang="en-US">Internal Server Error</message>
    <innererror>com.ctc.wstx.exc.WstxIOException: Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)</innererror>
</error>

Resolution

There was an illegal ASCII character.  A Risk was created in Clarity, the day the problem started.  Using the last updated date and clarity updated date, identify the problem row with the bad ASCII character.

Troubleshooting:

1- Identify the table that has the issue, in this case it was DWH_RIM_RISK

2- Query for new objects created in that table the day the problem started

3- Using the $select as part of the URL, try adding one column at a time until the issue is seen

For example:

https://cppmbi1234.ondemand.ca.com/api/odata/cppm1234pdatasource/DWH_RIM_RISK?$select=description,impact_description,investment_key,owner,resolution,rio_no,risk_id,risk_key,risk_name,rsk_cal_risk,impact_date,target_resolution_date

4- Query the table based on the date range, correct the data for the RISK through the new UI