IBM Support

IZ22295: AFTER DB2 SERVER RETURNS ABNUOWRM MESSAGE FOR SQL0911 ERROR, JCC DRIVER BLOCKS ALL LOCAL TRANSCATIONS WITH ERRORCODE=-4497.

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • For application uses DB2XADatasource from DB2 Universal JDBC
    Driver, if it fails with SQL0911 RC=68 error, any other
    applications accessing the same data source will fail with
    ERRORCODE=-4497 error,
    
    //////// application fails with this ////////
    [jcc][t4][10342][11669][3.50.152] Application must execute a
    rollback. The unit of work has already been rolled back in the
    database but other resource managers involved in this unit of
    work might not. To ensure integrity of this application, all SQL
    requests will be rejected until the application issues a
    rollback. ERRORCODE=-4497, SQLSTATE=null at
    com.ibm.db2.jcc.b.wc.a(wc.java:55) at
    com.ibm.db2.jcc.b.wc.a(wc.java:119) at
    com.ibm.db2.jcc.t4.c.a(c.java:140) at
    com.ibm.db2.jcc.b.p.d(p.java:268) at
    com.ibm.db2.jcc.t4.a.d(a.java:438) at
    com.ibm.db2.jcc.b.uk.e(uk.java:2894) at
    com.ibm.db2.jcc.b.uk.zb(uk.java:568) at
    com.ibm.db2.jcc.b.uk.executeUpdate(uk.java:551) at
    com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpda
    te(WSJdbcPreparedStatement.java:948) at
    ......
    ////////////////////////////////////////////////////////////////
    
    This problem does not occur on Legacy JDBC driver.
    
    
    JCC trace:
    /// application 1 fails (ABNUOWRM) along with SQL911 RC=68, ///
    
    [jcc][t4]        RECEIVE BUFFER: ABNUOWRM            (ASCII)
    (EBCDIC)
    [jcc][t4] 0000   0026D05200040020  220D000611490008  .&.R...
    "....I..  ..}.............
    [jcc][t4] 0010   00162110E2C1D4D7  D3C5404040404040
    ..!.......@@@@@@  ....SAMPLE
    [jcc][t4] 0020   404040404040                        @@@@@@
    [jcc][t4]
    [jcc][t4]        RECEIVE BUFFER: SQLCARD             (ASCII)
    (EBCDIC)
    [jcc][t4] 0000   005BD00300040055  24080071FCFFFF34
    .[.....U$..q...4  .$}.............
    [jcc][t4] 0010   3030303153514C52  4932433100440010
    0001SQLRI2C1.D..  ......<.........
    [jcc][t4] 0020   8044000000000000  00000000000CFEFF
    .D..............  ................
    [jcc][t4] 0030   FF00000000202020  2020202020202020  .....
    ................
    [jcc][t4] 0040   001253414D504C45  2020202020202020  ..SAMPLE
    ....(&<.........
    [jcc][t4] 0050   2020202000000002  3638FF                ....68.
    ...........
    [jcc][t4]
    [jcc][Connection@17b217b2] DB2 LUWID:
    NF000001.GD0B.080514043938.0005
    [jcc] BEGIN TRACE_DIAGNOSTICS
    [jcc][Thread:WebContainer : 0][SQLException@1d261d26]
    java.sql.SQLException
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] DB2 SQLCA from server
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlCode        = -911
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlErrd        = {
    -2146435004, 68, 0, 0, -500, 0 }
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlErrmc       = 68
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlErrmcTokens = { 68
    }
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlErrp        =
    SQLRI2C1
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlState       = 40001
    [jcc][Thread:WebContainer :
    0][SQLException@1d261d26][Sqlca@1c721c72] SqlWarn        =
    [jcc][Thread:WebContainer : 0][SQLException@1d261d26] SQL state
    = 40001
    [jcc][Thread:WebContainer : 0][SQLException@1d261d26] Error code
    = -911
    [jcc][Thread:WebContainer : 0][SQLException@1d261d26] Tokens
    = 68
    [jcc][Thread:WebContainer : 0][SQLException@1d261d26] Stack
    trace follows
    com.ibm.db2.jcc.b.pm: DB2 SQL Error: SQLCODE=-911,
    SQLSTATE=40001, SQLERRMC=68, DRIVER=3.50.152
       at com.ibm.db2.jcc.b.wc.a(wc.java:568)
       at com.ibm.db2.jcc.b.wc.a(wc.java:57)
       at com.ibm.db2.jcc.b.wc.a(wc.java:126)
       at com.ibm.db2.jcc.b.tk.c(tk.java:1901)
    
    //// further transaction fails with ERRORCODE=-4497, ///////
    
    [jcc][Time:2008-05-14-14:40:15.590][Thread:WebContainer :
    0][PreparedStatement@231c231c] executeUpdate () called
    [jcc] BEGIN TRACE_DIAGNOSTICS
    [jcc][Thread:WebContainer : 0][SQLException@695e695e]
    java.sql.SQLException
    [jcc][Thread:WebContainer : 0][SQLException@695e695e] SQL state
    = null
    [jcc][Thread:WebContainer : 0][SQLException@695e695e] Error code
    = -4497
    [jcc][Thread:WebContainer : 0][SQLException@695e695e] Message
    = [jcc][t4][10342][11669][3.50.152] Application must execute a
    rollback. The unit of work has already been rolled back in the
    database but other resource managers involved in this unit of
    work might not. To ensure integrity of this application, all SQL
    requests will be rejected until the application issues a
    rollback.  ERRORCODE=-4497, SQLSTATE=null
    [jcc][Thread:WebContainer : 0][SQLException@695e695e] Stack
    trace follows
    com.ibm.db2.jcc.b.SqlException:
    [jcc][t4][10342][11669][3.50.152] Application must execute a
    rollback. The unit of work has already been rolled back in the
    database but other resource managers involved in this unit of
    work might not. To ensure integrity of this application, all SQL
    requests will be rejected until the application issues a
    rollback.  ERRORCODE=-4497, SQLSTATE=null
       at com.ibm.db2.jcc.b.wc.a(wc.java:55)
       at com.ibm.db2.jcc.b.wc.a(wc.java:119)
       at com.ibm.db2.jcc.t4.c.a(c.java:140)
       at com.ibm.db2.jcc.b.p.d(p.java:268)
       at com.ibm.db2.jcc.t4.a.d(a.java:438)
       at com.ibm.db2.jcc.b.uk.e(uk.java:2894)
       at com.ibm.db2.jcc.b.uk.zb(uk.java:568)
       at com.ibm.db2.jcc.b.uk.executeUpdate(uk.java:551)
       at
    com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpda
    te(WSJdbcPreparedStatement.java:948)
    
    
    Testcase:
    1. On WebSphere Application Server side, create a db2 data
    source using DB2 Universal JDBC driver (no matter T2 or T4)
    2. Install two applications accessing this data source and same
    table (say tableA)
    
    3. On DB2 Server side, make sure DB CFG parameter LOCKTIMEOUT is
    NOT set to -1,
    
    3. On DB2 Server side, lock a table in exclusive mode:
         db2 connect to [db]
         db2 +c lock table tableA in exclusive mode
    4. Start one application, it will fail with SQL0911 RC=68 (lock
    time out)
    5. Start another application, it fails with SQL0911 RC=68 too.
    6. Refresh the same webpage to load the application again,
    it fails with ERRORCODE=-4497 error.
    

Local fix

  • 1. Use legacy JDBC T2 driver if possible.
    2. Issue rollback after ERRORCODE=-4497 is returned.
    3. Use ConnectionPoolDatasource instead.
    

Problem summary

  • Users affected: All
    Problem Description: See above
    Problem Summary: See above
    

Problem conclusion

  • Fixed in DB2 UDB Version 8.2, FixPak 16
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ22295

  • Reported component name

    DB2 UDB ESE AIX

  • Reported component ID

    5765F4100

  • Reported release

    820

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2008-05-14

  • Closed date

    2009-03-08

  • Last modified date

    2009-03-08

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

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

Fix information

  • Fixed component name

    DB2 UDB ESE AIX

  • Fixed component ID

    5765F4100

Applicable component levels

  • R810 PSY

       UP

  • R820 PSY

       UP



Document information

More support for: DB2 for Linux, UNIX and Windows

Software version: 820

Reference #: IZ22295

Modified date: 08 March 2009


Translate this page: