Fix (APAR): PI14746 Status: Fix Release: 8.5.5.2,8.5.5.1,8.5.5 Operating System: AIX,HP-UX,Linux,Mac OS,Solaris,Windows,z/OS Supersedes Fixes: CMVC Defect: xxxxxx Byte size of APAR: 1032802 Date: 2014-05-16 Abstract: Memory leak in J2C PoolManager due to reaper alarms not being cancelled. Description/symptom of problem: PI14746 resolves the following problem: ERROR DESCRIPTION: When the PoolManager is stopped, the Reaper Alarms are not canceled and this can result in a possible OutOfMemory condition. LOCAL FIX: NA PROBLEM SUMMARY USERS AFFECTED: All users of IBM WebSphere Application Server V8.5 PROBLEM DESCRIPTION: Memory Leak in J2C PoolManager when using MQ JMS Connection Factory RECOMMENDATION: None This memory leak specifically manifests itself when applications use the JMS Queue Connection Factory that involves a JMS Connection pool and JMS Session pool. When the Managed connection is destroyed due to unused or aged timeouts, then the associated JMS Session pool will be stopped and destroyed and the reaper alarms associated with the PoolManager should also be cancelled. The Session pool is being stopped, however, the PoolManager instances registered in the reaper alarms is not getting destroyed and the alarms are repeatedly created and cancelled for every reap cycle. This causes the PoolManager objects and its associated reaper alarm objects to stay on the heap forever, potentially leading to OutOfMemory conditions. Heap analyzer tools might show a leak suspect with a stack trace similar to this: A Linked List Data Structure Detected. 1,981,662,352 bytes (47.28 %) of Java heap is used by 44 instances of java/util/concurrent/ConcurrentSkipListMap$Index Contains the following object:- 44 instances of java/util/concurrent/ConcurrentSkipListMap$Node holding 5,366,608 bytes TotalSize [ObjectSize] NumberOfChildObject(249,874) ObjectName Address |- 1,981,966,928 [24] 1 java/util/concurrent/ConcurrentSkipListMap$HeadIndex 0xf7766298 |- 1,981,966,904 [24] 2 java/util/concurrent/ConcurrentSkipListMap$HeadIndex 0xf180b1b8 |- 1,981,966,544 [24] 3 java/util/concurrent/ConcurrentSkipListMap$Index 0xffa75200 |- 1,453,166,232 [24] 3 java/util/concurrent/ConcurrentSkipListMap$Index 0xffa751e8 |- 528,679,664 [24] 3 java/util/concurrent/ConcurrentSkipListMap$Index 0x1055a3258 |- 120,624 [24] 3 java/util/concurrent/ConcurrentSkipListMap PROBLEM CONCLUSION: The WebSphere J2C has been updated to prevent the memory leak in J2C PoolManager code. The fix for this APAR is currently targeted for inclusion in fix pack 8.5.5.3. Please refer to the Recommended Updates page for delivery information: http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980 Directions to apply fix: NOTE: Mark with an X the: 1) Release the fix applies to 2) The Editions that apply 3) And then DELETE THIS NOTE Fix applies to Editions: Release 8.0 X__ Application Server (Express or BASE) X__ Network Deployment (ND) __ Edge Components __ Developer Install Fix to all WebSphere installations unless special instructions are included below. Special Instructions: None NOTE: The user must: * Logged in with the same authority level when unpacking a fix, fix pack or refresh pack. * Be at V1.4.3 or newer of the Installation Manager. Certain iFixes may require a newer version of the Installation Manager and the Installation Manager will inform you during the installation process if a newer version is required. The IBM Information Center can provide details, if needed, on the use of the Installation Manager to apply the iFixes. http://publib.boulder.ibm.com/infocenter/install/v1r4/index.jsp. Shutdown WebSphere Application Server before applying the iFixes. Restart WebSphere Application Server after applying the iFixes. Directions to remove fix: The IBM Information Center can provide details, if needed, on the use of the Installation Manager to remove the iFixes. http://publib.boulder.ibm.com/infocenter/install/v1r4/index.jsp. Shutdown WebSphere Application Server before removing the iFixes. Restart WebSphere Application Server after removing the iFixes. Directions to re-apply fix: 1) Shutdown WebSphere Application Server. 2) Follow the Fix instructions to apply the fix. 3) Restart WebSphere Application Server. Additional Information: