IBM Support

PM43516: IF DATABASE CONNECTION IS LOST DURING TRANSACTION, THE ROLLBACK CAUSES THE TRANSACTION TO BE STUCK IN WAIT STATE INDEFINITELY.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • If database connection is lost in the middle of transaction,
    the
    
    rollback causes the transaction to be stuck in wait state.
    Even if the database connection is restored, the transaction
    never recovers.
    This causes eventual database log file to fillup.  The errors
    the logs.
    Received the following type of message in the logs:
    XATransaction E   J2CA0026E: Method addSync caught
    javax.transaction.RollbackException: Transaction rolled back
    
    This indicates it is a scheduled task. This scheduled task
    fails
    because
    the application code attempts to enlist a connection in a
    Transaction.
    The application calls getConnection() but that fails because
    the
    transaction has already been rolled back:
    
    com.ibm.ejs.j2c.ConnectionManager.involveMCInTran
    
    But, the transaction has already been rolled back.
    
    000002e6 JCRCFLLoggerI E
    com.ibm.icm.ts.tss.JCRCFLLoggerImpl
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.removeExpiredIndexClaim
    s
    [java.lang.ThreadGroup[name=icmciWorkManager:
    icmjcrear,maxpri=10]]:
    Error removing expired index claims from the database.
    java.sql.SQLException: ConnectionWrapper.getConnection()
    at
    com.ibm.icm.ts.tss.ls.BaseDBImpl$ConnectionWrapper
    .getConnection
    (BaseDBI
    mpl.java(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.BaseDBImpl.removeExpiredIndexClaims(BaseD
    BImpl.jav
    a(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.removeExpiredIndexClaim
    s(Library
    ServerImpl.java(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.state(LibraryServerImpl
    .java(Com
    piled Code))
    at
    com.ibm.icm.ts.tss.app.Janitor.cleanupLibraryServer(Janitor.jav
    a(Compile
    d Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService.cleanupLibraryServer(Jani
    torServic
    e.java(Inlined Compiled Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService.access$000(JanitorService
    .java(Inl
    ined Compiled Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService$Notifiee.onEvent(JanitorS
    ervice.ja
    va(Compiled Code))
    at
    com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.runA
    ctivity(A
    ctivityImpl.java(Compiled Code))
    at
    com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.run(
    ActivityI
    mpl.java(Compiled Code))
    at
    com.ibm.hrl.workmanager.RunnableWrapper.run(RunnableWrapper
    .java
    :44)
    at
    com.ibm.hrl.workmanager.impl.was.WasWork.run(WasWork.java:75)
    at
    com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.jav
    a:258)
    at java.security.AccessController.doPrivileged1(Native Method)
    at
    java.security.AccessController.doPrivileged(AccessController
    .jav
    a(Compil
    ed Code))
    at javax.security.auth.Subject.doAs(Subject.java:477)
    at
    com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject
    .java:11
    8)
    at
    com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext
    .jav
    a:325)
    at java.security.AccessController.doPrivileged1(Native Method)
    at
    java.security.AccessController.doPrivileged(AccessController
    .jav
    a:351)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:709)
    at
    com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl
    .go(WorkWithE
    xecution
    ContextImpl.java:218)
    at
    com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl
    .java:15
    4)
    at java.lang.Thread.run(Thread.java:571)
    Caused by: java.sql.SQLException: addSync: caught Exception
    at
    com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.jav
    a:1160)
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbc
    DataSourc
    e.java(Compiled Code))
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbc
    DataSourc
    e.java(Compiled Code))
    at
    com.ibm.icm.ci.Datastore$DataSource.getConnection(Datastore.jav
    a(Compile
    d Code))
    ... 24 more
    Caused by: javax.resource.ResourceException: addSync: caught
    Exception
    at
    com.ibm.ejs.j2c.XATransactionWrapper.addSync(XATransactionWrapp
    er.java(C
    ompiled Code))
    

Local fix

  • use db2 command to force stop of transaction
    

Problem summary

  • If database connection is lost in the middle of transaction,
    the
    
    rollback causes the transaction to be stuck in wait state.
    Even if the database connection is restored, the transaction
    never recovers.
    This causes eventual database log file to fillup.  The errors
    the logs.
    Received the following type of message in the logs:
    XATransaction E   J2CA0026E: Method addSync caught
    javax.transaction.RollbackException: Transaction rolled back
    
    This indicates it is a scheduled task. This scheduled task
    fails
    because
    the application code attempts to enlist a connection in a
    Transaction.
    The application calls getConnection() but that fails because
    the
    transaction has already been rolled back:
    
    com.ibm.ejs.j2c.ConnectionManager.involveMCInTran
    
    But, the transaction has already been rolled back.
    
    000002e6 JCRCFLLoggerI E
    com.ibm.icm.ts.tss.JCRCFLLoggerImpl
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.removeExpiredIndexClaim
    s
    [java.lang.ThreadGroup[name=icmciWorkManager:
    icmjcrear,maxpri=10]]:
    Error removing expired index claims from the database.
    java.sql.SQLException: ConnectionWrapper.getConnection()
    at
    com.ibm.icm.ts.tss.ls.BaseDBImpl$ConnectionWrapper
    .getConnection
    (BaseDBI
    mpl.java(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.BaseDBImpl.removeExpiredIndexClaims(BaseD
    BImpl.jav
    a(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.removeExpiredIndexClaim
    s(Library
    ServerImpl.java(Compiled Code))
    at
    com.ibm.icm.ts.tss.ls.LibraryServerImpl.state(LibraryServerImpl
    .java(Com
    piled Code))
    at
    com.ibm.icm.ts.tss.app.Janitor.cleanupLibraryServer(Janitor.jav
    a(Compile
    d Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService.cleanupLibraryServer(Jani
    torServic
    e.java(Inlined Compiled Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService.access$000(JanitorService
    .java(Inl
    ined Compiled Code))
    at
    com.ibm.icm.ts.tss.app.JanitorService$Notifiee.onEvent(JanitorS
    ervice.ja
    va(Compiled Code))
    at
    com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.runA
    ctivity(A
    ctivityImpl.java(Compiled Code))
    at
    com.ibm.icm.ts.act.ActivityImpl$ManagerImpl$ActivityRunner.run(
    ActivityI
    mpl.java(Compiled Code))
    at
    com.ibm.hrl.workmanager.RunnableWrapper.run(RunnableWrapper
    .java
    :44)
    at
    com.ibm.hrl.workmanager.impl.was.WasWork.run(WasWork.java:75)
    at
    com.ibm.ws.asynchbeans.J2EEContext$RunProxy.run(J2EEContext.jav
    a:258)
    at java.security.AccessController.doPrivileged1(Native Method)
    at
    java.security.AccessController.doPrivileged(AccessController
    .jav
    a(Compil
    ed Code))
    at javax.security.auth.Subject.doAs(Subject.java:477)
    at
    com.ibm.websphere.security.auth.WSSubject.doAs(WSSubject
    .java:11
    8)
    at
    com.ibm.ws.asynchbeans.J2EEContext$DoAsProxy.run(J2EEContext
    .jav
    a:325)
    at java.security.AccessController.doPrivileged1(Native Method)
    at
    java.security.AccessController.doPrivileged(AccessController
    .jav
    a:351)
    at com.ibm.ws.asynchbeans.J2EEContext.run(J2EEContext.java:709)
    at
    com.ibm.ws.asynchbeans.WorkWithExecutionContextImpl
    .go(WorkWithE
    xecution
    ContextImpl.java:218)
    at
    com.ibm.ws.asynchbeans.ABWorkItemImpl.run(ABWorkItemImpl
    .java:15
    4)
    at java.lang.Thread.run(Thread.java:571)
    Caused by: java.sql.SQLException: addSync: caught Exception
    at
    com.ibm.ws.rsadapter.AdapterUtil.toSQLException(AdapterUtil.jav
    a:1160)
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbc
    DataSourc
    e.java(Compiled Code))
    at
    com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbc
    DataSourc
    e.java(Compiled Code))
    at
    com.ibm.icm.ci.Datastore$DataSource.getConnection(Datastore.jav
    a(Compile
    d Code))
    ... 24 more
    Caused by: javax.resource.ResourceException: addSync: caught
    Exception
    at
    com.ibm.ejs.j2c.XATransactionWrapper.addSync(XATransactionWrapp
    er.java(C
    ompiled Code))
    

Problem conclusion

  • PM43516
    =======
    
    Problem Description:
       IF DATABASE CONNECTION IS LOST DURING TRANSACTION, THE
    ROLLBACK CAUSES THE TRANSACTION TO BE STUCK IN WAIT STATE
    INDEFINITELY
    
    Problem Solution:
      PM43516 contains code changes.
    
    Affected Users:
       All portal users.
    
    Pre-Requisite(s):
       Portal Version: 6.0.1.1
       Portal Fixes:   PM06844
    
    Installation Steps:
       NOTE:  YOU MUST FIRST DOWNLOAD THE UPDATE INSTALLER TOOL IN
    ORDER TO INSTALL A FIX.
              The WebSphere Portal Update Installer (PUI) can be
    downloaded from the following link:
              http://www.ibm.com/support/docview
    .wss?rs=688&uid=swg24006942
    
    *Reminder: the version of PUI used varies based on the version
    of WebSphere Portal.
    Ensure the correct version is in use.*
    
    Refer to the "Maintaining the cluster" topic in the 6.0
    InfoCenter
    (http://publib.boulder.ibm.com/infocenter/wpdoc/v6r0/index
    .jsp?topic=/com.ibm.wp.ent.doc/wpf/clus_maint.html)
    for additional information on installing or uninstalling interim
    fixes in clustered environments
    while maintaining continuous availability of your portal.
    
    1. Stop the WebSphere Portal server
    2. Apply the PM43516.jar using the PUI (Portal update
    installer).
       Refer to the PUI readme for further information on using the
    PUI.
    3. Restart the WebSphere Portal server.
    
    
    Uninstall:
    NOTE:  FIXES MUST BE REMOVED IN THE ORDER THEY WERE APPLIED.
           DO NOT REMOVE A FIX UNLESS ALL FIXES APPLIED AFTER IT
    HAVE FIRST BEEN REMOVED.
           YOU MAY REAPPLY ANY REMOVED FIX.
    
    Use the Portal Update Installer to uninstall the fix:
    
       1. Shutdown WebSphere Portal.
       2. Follow the instructions that are packaged with the Portal
    Update Installer on how to uninstall a fix.
       3. Restart WebSphere Portal.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM43516

  • Reported component name

    WEBSPHERE PORTA

  • Reported component ID

    5724E7600

  • Reported release

    601

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-07-12

  • Closed date

    2011-08-12

  • Last modified date

    2011-08-12

  • 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

    WEBSPHERE PORTA

  • Fixed component ID

    5724E7600

Applicable component levels

  • R60E PSY

       UP

  • R61A PSY

       UP

  • R61B PSY

       UP

  • R61C PSY

       UP

  • R610 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSHRKX","label":"WebSphere Portal"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0.1","Line of Business":{"code":"LOB31","label":"WCE Watson Marketing and Commerce"}}]

Document Information

More support for:
WebSphere Portal

Software version:
6.0.1

Document number:
3021501

Modified date:
21 December 2021