IBM Support

PM64489: ENTITYMANAGERFACTORIES CAN BE LEAKED IF THEY ARE CREATED WITH THE JSE BOOTSTRAP PERSISTENCE CLASS AND ARE NEVER CLOSED

Fixes are available

7.0.0.25: WebSphere Application Server V7.0 Fix Pack 25
8.0.0.5: WebSphere Application Server V8.0 Fix Pack 5
7.0.0.27: WebSphere Application Server V7.0 Fix Pack 27
8.0.0.6: WebSphere Application Server V8.0 Fix Pack 6
7.0.0.29: WebSphere Application Server V7.0 Fix Pack 29
8.0.0.7: WebSphere Application Server V8.0 Fix Pack 7
8.0.0.8: WebSphere Application Server V8.0 Fix Pack 8
7.0.0.31: WebSphere Application Server V7.0 Fix Pack 31
7.0.0.27: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.33: WebSphere Application Server V7.0 Fix Pack 33
8.0.0.9: WebSphere Application Server V8.0 Fix Pack 9
7.0.0.35: WebSphere Application Server V7.0 Fix Pack 35
8.0.0.10: WebSphere Application Server V8.0 Fix Pack 10
7.0.0.37: WebSphere Application Server V7.0 Fix Pack 37
8.0.0.11: WebSphere Application Server V8.0 Fix Pack 11
7.0.0.39: WebSphere Application Server V7.0 Fix Pack 39
8.0.0.12: WebSphere Application Server V8.0 Fix Pack 12
7.0.0.41: WebSphere Application Server V7.0 Fix Pack 41
8.0.0.13: WebSphere Application Server V8.0 Fix Pack 13
7.0.0.43: WebSphere Application Server V7.0 Fix Pack 43
8.0.0.14: WebSphere Application Server V8.0 Fix Pack 14
7.0.0.45: WebSphere Application Server V7.0 Fix Pack 45
8.0.0.15: WebSphere Application Server V8.0 Fix Pack 15
7.0.0.25: Java SDK 1.6 SR11 Cumulative Fix for WebSphere Application Server
7.0.0.27: Java SDK 1.6 SR12 Cumulative Fix for WebSphere Application Server
7.0.0.29: Java SDK 1.6 SR13 FP2 Cumulative Fix for WebSphere Application Server
7.0.0.45: Java SDK 1.6 SR16 FP60 Cumulative Fix for WebSphere Application Server
7.0.0.31: Java SDK 1.6 SR15 Cumulative Fix for WebSphere Application Server
7.0.0.35: Java SDK 1.6 SR16 FP1 Cumulative Fix for WebSphere Application Server
7.0.0.37: Java SDK 1.6 SR16 FP3 Cumulative Fix for WebSphere Application Server
7.0.0.39: Java SDK 1.6 SR16 FP7 Cumulative Fix for WebSphere Application Server
7.0.0.41: Java SDK 1.6 SR16 FP20 Cumulative Fix for WebSphere Application Server
7.0.0.43: Java SDK 1.6 SR16 FP41 Cumulative Fix for WebSphere Application Server

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • EntityManagerFactories can be leaked if they are created with
    the JSE bootstrap Persistence class and are never closed,
    causing an OutOfMemoryException.
    

Local fix

  • This is a known behavior as documented by OPENJPA-2042, where
    the solution was to modify the list of listeners to use a
    weak-reference HashSet. This has been implemented in OpenJPA
    2.2.x
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server V7.0 and V8.0                        *
    ****************************************************************
    * PROBLEM DESCRIPTION: WebSphere heap exhaustion occurs, and   *
    *                      PCRegistry shows as one of the largest  *
    *                      retained heap consumers.                *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Whenever an OpenJPA EntityManagerFactory is created, a
    reference to its internal metadata is retained by PCRegistry's
    listener list.  The entry from the listener list is removed
    only when an EMF is properly closed (by invoking its close()
    method).  This does not automatically occur if an unclosed EMF
    is garbage collected (that is , all references to it are set
    to null.)
    Because the application server is responsible for managing
    resources injected by @PersistenceUnit, this problem only
    occurs when the application uses
    javax.persistence.Persistence.createEntityManagerFactory() to
    acquire instances of EntityManagerFactory.  The lifecycle of
    EntityManagerFactory instances obtained this way, from
    beginning to end, are the responsibility of the application.
    Applications that do not invoke the close() method on the
    EntityManagerFactory before allowing it to be garbage collected
    are prone to this leak.
    

Problem conclusion

  • The list retained by PCRegistry has been updated to retain a
    weak reference to the internal data structures.  This prevents
    the memory leak from occurring.
    
    The fix for this APAR is currently targeted for inclusion in
    fix packs 7.0.0.25 and 8.0.0.5.  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

    PM64489

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-05-11

  • Closed date

    2012-08-20

  • Last modified date

    2012-10-11

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

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

    PM64591

Fix information

  • Fixed component name

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R700 PSY

       UP

  • R800 PSY

       UP



Document information

More support for: WebSphere Application Server
General

Software version: 7.0

Reference #: PM64489

Modified date: 11 October 2012