locked
System.OutOfMemoryException RRS feed

  • Question

  • Dear All,

    My SSIS package getting failed due to the following error, But this server have more than enough memory(96GB) . please help me to resolve this issue

    Message
    Executed as user: test123. Microsoft (R) SQL Server Execute Package Utility  Version 10.50.4000.0 for 32-bit  Copyright (C) Microsoft Corporation 2010. All rights reserved.    Started:  12:47:50 AM  Error: 2014-07-02 00:51:27.39
    Code: 0x000003E8
    Source: Data Flow Task XtractIS
    Description: [7/2/2014 12:51:27 AM] System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
    at System.Data.Common.StringStorage.SetCapacity(Int32 capacity)
    at System.Data.RecordManager.set_RecordCapacity(Int32 value)
    at System.Data.RecordManager.GrowRecordCapacity()
    at System.Data.RecordManager.NewRecordBase()
    at System.Data.DataTable.NewRecord(Int32 sourceRecord)
    at System.Data.DataTable.NewRow(Int32 record)
    at System.Data.DataTable.NewRow()
    at ERPConnect.Utils.ReadTable.ProcessRetrievdData(DataTable& t, RFCFunction f)
    at ERPConnect.Utils.ReadTable.Run()
    at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)  End Error  Error: 2014-07-02 00:51:27.41
    Code: 0xC0047062
    Source: Data Flow Task Xtract VBUK [2059]
    Description: System.Exception: System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
    at System.Data.Common.StringStorage.SetCapacity(Int32 capacity)
    at System.Data.RecordManager.set_RecordCapacity(Int32 value)
    at System.Data.RecordManager.GrowRecordCapacity()
    at System.Data.RecordManager.NewRecordBase()
    at System.Data.DataTable.NewRecord(Int32 sourceRecord)
    at System.Data.DataTable.NewRow(Int32 record)
    at System.Data.DataTable.NewRow()
    at ERPConnect.Utils.ReadTable.ProcessRetrievdData(DataTable& t, RFCFunction f)at ERPConnect.Utils.ReadTable.Run()at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)
    at XtractIS.XtractPipelineComponent.FireError(String message, Boolean ExceptionToo)
    at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)
    at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPrimeOutput(IDTSManagedComponentWrapper100 wrapper, Int32 outputs, Int32[] outputIDs, IDTSBuffer100[] buffers, IntPtr ppBufferWirePacket)  End Error  Error: 2014-07-02 00:51:27.41
    Code: 0xC0047038Source: Data Flow Task SSIS.Pipeline
    Description: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on component "Xtract VBUK" (2059) returned error code 0x80131500.  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.  End Error  Error: 2014-07-02 01:04:29.38
    Code: 0x000003E8
    Source: Data Flow Task XtractIS
    Description: [7/2/2014 1:04:29 AM] System.Exception: Could not create new internal table hIT=-2031353736
    at ERPConnect.RFCFunction.Execute()
    at ERPConnect.Utils.ReadTable.ExecuteRFC_READ_TABLE(RFCFunction& f)
    at ERPConnect.Utils.ReadTable.Run()
    at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)  End Error  Error: 2014-07-02 01:04:29.38
    Code: 0xC0047062
    Source: Data Flow Task Xtract VBFA [2059]
    Description: System.Exception: System.Exception: Could not create new internal table hIT=-2031353736
    at ERPConnect.RFCFunction.Execute()
    at ERPConnect.Utils.ReadTable.ExecuteRFC_READ_TABLE(RFCFunction& f)
    at ERPConnect.Utils.ReadTable.Run()
    at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)
    at XtractIS.XtractPipelineComponent.FireError(String message, Boolean ExceptionToo)
    at XtractIS.XtractSourceTable.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers)
    at Microsoft.SqlServer.Dts.Pipel

    Thnaks,

    Robb

    Wednesday, July 2, 2014 3:05 AM

Answers

  • Hi Robb,

    According to the job history, the package is executed by the 32-bit DTExec utility. For a 32-bit DTExec process on a 64-bit OS, it can consume up to 4GB memory. So, that may be the cause of the OutOfMemory exception. If possible, run the package in 64-bit runtime mode by using the 64-bit DTExec.exe.

    If the package must run in 32-bit runtime, for example, there is no 64-bit required driver available, you can work around this issue by split the package into several packages and use Execute Package Tasks to call child packages from a parent package. Besides, set the “ExecuteOutOfProcess” property to True so that each child package process can claim its own 4GB virtual memory.

    In addition, SSIS uses memory that are not allocated by SQL Server, so increasing the maximum memory limit for SQL Server, to the contrary, may decrease the available memory that can be used by SSIS. 

    Regards,


    Mike Yin
    TechNet Community Support

    Tuesday, July 8, 2014 8:58 AM

All replies

  • Robb

    Please explain what does the package do? Have set up MAX memory param to SQL Server?


    Best Regards,Uri Dimant SQL Server MVP, http://sqlblog.com/blogs/uri_dimant/

    MS SQL optimization: MS SQL Development and Optimization
    MS SQL Consulting: Large scale of database and data cleansing
    Remote DBA Services: Improves MS SQL Database Performance
    SQL Server Integration Services: Business Intelligence

    Wednesday, July 2, 2014 5:32 AM
  • Hi Uri Dimant,

    Thanks a lot for you immediate reply.

    We are using this package to get data from the external sources and and to load to the staging tables. we have increased the max memory from 10GB to 20 GB. but still getting the same error message.

    We have observed this issue from day before yesterday onwards, before that same job worked without any issue and we haven't done any modification to the job.

    Thanks,

    Robb

    Wednesday, July 2, 2014 5:49 AM
  • Hi Robb,

    According to the job history, the package is executed by the 32-bit DTExec utility. For a 32-bit DTExec process on a 64-bit OS, it can consume up to 4GB memory. So, that may be the cause of the OutOfMemory exception. If possible, run the package in 64-bit runtime mode by using the 64-bit DTExec.exe.

    If the package must run in 32-bit runtime, for example, there is no 64-bit required driver available, you can work around this issue by split the package into several packages and use Execute Package Tasks to call child packages from a parent package. Besides, set the “ExecuteOutOfProcess” property to True so that each child package process can claim its own 4GB virtual memory.

    In addition, SSIS uses memory that are not allocated by SQL Server, so increasing the maximum memory limit for SQL Server, to the contrary, may decrease the available memory that can be used by SSIS. 

    Regards,


    Mike Yin
    TechNet Community Support

    Tuesday, July 8, 2014 8:58 AM
  • Hi Robb,

    From the error below it looks like you are using an adapter from Theobald Software. Have you tried contacting them? It might be an issue in their code.


    SSIS Tasks Components Scripts Services | http://www.cozyroc.com/

    Wednesday, July 9, 2014 11:08 PM