Download
Abstract
Memory leak in J2C PoolManager due to reaper alarms not being cancelled.
Download Description
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.
Problems (APARS) fixed
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg24037572