IBM Support

IC99200: ADO.NET DB2 PROVIDER - ACCESSVIOLATIONEXCEPTION ISSUE WHEN PERFORMING ARRAY INSERT OF LARGE BINARY VALUES ON A BLOB COLUMN.

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • ADO.NET application is getting AccessViolationException when
    performing a batch insert of large binary values in a table that
    contains a BLOB column. The batch insert is performed by setting
    the "ArrayBindCount" property on the DB2Command instance.
    
    The application throw AccessVoilationException when inserting
    200 rows of binary data in a table using array insert. One of
    the column in this table is a BLOB and size of largest BLOB data
    in binary file is 1417522 byte. So, the size of application
    array to hold this 200 rows of data is 1417522 x 200 > 2GB. The
    dot.net driver crashes while accessing the row number 146 of
    such big array with access violation exception. The memory
    address of 146th row is going beyond 2GB and hence it
    application buffer pointer gets some invalid address.
    
    Using windbg too, got below stack trace for this issue:
    ==================================
    
    00000000`0e80a0a8 000007fe`f60d8111 : 00000000`0cb80728
    00000000`00000000 00000000`00000002 000007fe`f5fe8a8f :
    db2app64!_intel_new_memcpy+0x69
    00000000`0e80a0b0 000007fe`f5fcfbe9 : 000007fe`00000000
    00000000`0000146c 00000000`0000000a 00000000`04b804b0 :
    db2app64!CLI_callbDrdaInputLob+0xeb1
    [T:\db2_v101fp3\ntx64\s130717\engn\include\clientbiconvlob.h @
    934]
    00000000`0e80a370 000007fe`f5f9f2f7 : 00000000`00000000
    000007fe`00000000 00000000`0e6d0000 00000000`0e6d3808 :
    db2app64!sqljrGenAllExtDtas+0x149
    [T:\db2_v101fp3\ntx64\s130717\engn\sqjr\sqljrbni.C @ 1054]
    00000000`0e80a420 000007fe`f62994d3 : 000007fe`f6709c3c
    00000000`0000124c 00000000`000000c8 00000000`0d1d0001 :
    db2app64!sqljrDrdaArArrayInput+0x277
    [T:\db2_v101fp3\ntx64\s130717\engn\sqjr\sqljrintrfc.C @ 4198]
    00000000`0e80a4b0 000007fe`f614ac5b : 00000000`00000904
    00000000`00000904 00000000`00000001 00000000`0c86bfe0 :
    db2app64!CLI_sqlExecute+0x10d3
    [T:\db2_v101fp3\ntx64\s130717\engn\cli\clisql.C @ 5147]
    00000000`0e80a5b0 000007fe`f613e7a2 : 00000000`000004b8
    00000000`0d1def80 00000000`00000000 00000003`801c1340 :
    db2app64!CLI_execRetryExecute+0x7cb
    [T:\db2_v101fp3\ntx64\s130717\engn\cli\cliexec.C @ 11055]
    00000000`0e80ab10 000007fe`f62aed25 : 00000000`0e80abd0
    00000004`00010001 00000000`0000006b 000007fe`00000000 :
    db2app64!SQLExecute2+0xa62
    [T:\db2_v101fp3\ntx64\s130717\engn\cli\cliexec.C @ 9892]
    00000000`0e80ac30 000007fe`85fbc0a8 : 000007fe`85d2d2a0
    000007fe`85f6d440 00000000`0e80b348 00000003`801bc930 :
    db2app64!SQLExecDirectADONET+0x1965
    [T:\db2_v101fp3\ntx64\s130717\engn\cli\cliadonet.C @ 2066]
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:                                              *
    * C client users using array insert with total size of array   *
    * for all the rows exceeding 4byte int length.                 *
    ****************************************************************
    * PROBLEM DESCRIPTION:                                         *
    * See Error Description                                        *
    ****************************************************************
    * RECOMMENDATION:                                              *
    * Upgrade to DB2 V9.7FP10 or later releases.                   *
    ****************************************************************
    

Problem conclusion

  • DB2 V9.7 FP10 contains fix of this issue. After the fix, we
    don't see any accessviolationacception. The application is able
    to insert all the rows.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC99200

  • Reported component name

    DB2 CONNECT

  • Reported component ID

    DB2CONNCT

  • Reported release

    970

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-02-06

  • Closed date

    2014-11-11

  • Last modified date

    2014-11-11

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

    IC98382

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

Fix information

  • Fixed component name

    DB2 CONNECT

  • Fixed component ID

    DB2CONNCT

Applicable component levels

  • R970 PSY

       UP



Document information

More support for: DB2 for Linux, UNIX and Windows

Software version: 9.7

Reference #: IC99200

Modified date: 11 November 2014