IBM Support

IY93670: OLE DB PROVIDER MEMORY LEAK

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The symptom of the problem is an application leaks memory when
    fetching columns with variable length data types like VARCHAR,
    for example.   The cause of the problem is DB2's OLE DB Provider
    is not returning an error when the application asks for memory
    to be managed by DB2's OLE DB Provider.  DB2's OLE DB Provider
    does not support that and assumes the memory will be managed
    (freed) by the application.
    
    An example error that can occur is:
    
    Server: Msg 7346, Level 16, State 2, Line 2
    Could not get the data of the row from the OLE DB provider
    'IBMDADB2'. The
    provider cannot allocate memory or open another storage object
    on this
    column.
    OLE DB error trace [OLE/DB Provider 'IBMDADB2' IRowset::GetData
    returned
    0x80040e21:  Data status returned from the provider:
    [COLUMN_NAME=VIN
    STATUS=DBSTATUS_E_CANTCREATE]].
    
    This is an OLE DB non-conformance problem.  DB2's OLE DB
    provider does not support a binding that asks for memory to be
    provider owned.   For example, a binding created with
    DBBINDING.dwMemOwner with a value of DBMEMOWNER_PROVIDEROWNED.
    IAccessor::CreateAccessor() should return
    DBBINDSTATUS_BADBINDINFO on the binding that asks for
    DBMEMOWNER_PROVIDEROWNED.
    

Local fix

  • If using MS SQL Server Linked server, do not select the option
    for "Allow In Process" for the provider.
    

Problem summary

  • The symptom of the problem is an application leaks memory when
    fetching columns with variable length data types like VARCHAR,
    for example.   The cause of the problem is DB2's OLE DB Provider
    is not returning an error when the application asks for memory
    to be managed by DB2's OLE DB Provider.  DB2's OLE DB Provider
    does not support that and assumes the memory will be managed
    (freed) by the application.
    
    An example error that can occur is:
    
    Server: Msg 7346, Level 16, State 2, Line 2
    Could not get the data of the row from the OLE DB provider
    'IBMDADB2'. The
    provider cannot allocate memory or open another storage object
    on this
    column.
    OLE DB error trace [OLE/DB Provider 'IBMDADB2' IRowset::GetData
    returned
    0x80040e21:  Data status returned from the provider:
    [COLUMN_NAME=VIN
    STATUS=DBSTATUS_E_CANTCREATE]].
    
    This is an OLE DB non-conformance problem.  DB2's OLE DB
    provider does not support a binding that asks for memory to be
    provider owned.   For example, a binding created with
    DBBINDING.dwMemOwner with a value of DBMEMOWNER_PROVIDEROWNED.
    IAccessor::CreateAccessor() should return
    DBBINDSTATUS_BADBINDINFO on the binding that asks for
    DBMEMOWNER_PROVIDEROWNED.
    

Problem conclusion

  • First fixed in DB2 UDB Version 8, FixPak 16
    

Temporary fix

  • If using MS SQL Server Linked server, do not select the option
    for "Allow In Process" for the provider.
    

Comments

APAR Information

  • APAR number

    IY93670

  • Reported component name

    DB2 CEE AIX

  • Reported component ID

    5765F3000

  • Reported release

    810

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2007-01-16

  • Closed date

    2008-02-06

  • Last modified date

    2008-02-06

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    IY93677

Fix information

  • Fixed component name

    DB2 CEE AIX

  • Fixed component ID

    5765F3000

Applicable component levels

  • R810 PSN

       UP

  • R820 PSN

       UP

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"810","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
06 February 2008