IBM Support

PI96578: A third-party JPA provider may throw an exception at the end of Local Transaction boundaries.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When using a third-party JPA Provider implementations whose
    EntityManager.close() operation invokes operations besides
    Statement.close(), an ObjectClosedException may be thrown.
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server                                      *
    ****************************************************************
    * PROBLEM DESCRIPTION: An Exception is thrown by a             *
    *                      third-party JPA Provider when closed    *
    *                      at the end of a local transaction       *
    *                      boundary.                               *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Container Managed Transaction Scoped Persistence Contexts can
    enlist with the local transaction when no global transaction
    is active.  When the local transaction completes, the
    EntityManager enlisted with the local transaction is closed in
    order to fulfill Transaction Scoped required behavior.
    When an EntityManager is closed, it also attempts to close its
    JDBC Connection.  The JPA Provider Implementations shipped
    with WebSphere do not propagate any Exceptions thrown by the
    close() operation should any occur; third party JPA Provider
    Implementations may opt to propagate the Exception to the
    caller of EntityManager.close().
    The reported problem occurs due to a change in the
    synchronization order between the JPA Runtime and J2C
    introduced during the release's development.  Before the
    change, JPA would synchronize before J2C.  The change
    reversed the order, making it possible for the Connection to
    become closed before JPA calls EntityManager.close() (which in
    turn attempts to close the Connection it holds, which throws
    an Exception if the Connection is already closed.)
    

Problem conclusion

  • A means to return the local transaction synchronization order
    been integrated into the product.  Setting the property
    "com.ibm.ws.disable.F61571" to a value of "true" will return
    the synchronization order to the way it was in previous
    releases.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 9.0.0.10.  Please refer to the Recommended Updates
    page for delivery information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI96578

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-04-12

  • Closed date

    2018-10-15

  • Last modified date

    2018-10-15

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R900 PSY

       UP

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud \u0026 Data Platform"},"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"900"}]

Document Information

Modified date:
08 September 2021