Ниже представлены входящие ссылки на большой объем памяти, видимые в основном файле дампа кучи после OutOfMemoryException в WebSphere 6:
Class Name | Shallow Heap | Retained Heap
-------------------------------------------------------------------------------------------------------------
| |
java.util.HashMap$Entry[1048576] @ 0xbd42d00 | 4,194,320 | 122,167,192
'- java.util.HashMap @ 0x1044918 | 48 | 122,167,240
'- class com.ibm.ejs.j2c.ConnectorRuntime @ 0x15871128 | 28 | 122,167,356
|- org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader @ 0x133fa48 | 96 | 191,140
|- class com.ibm.ejs.j2c.RALifeCycleManagerImpl @ 0x15834ea0 | 28 | 108
|- class com.ibm.ejs.j2c.ConnectorRuntime @ 0x15871128 | 28 | 122,167,356
|- class com.ibm.ejs.j2c.PoolManager @ 0x158723d8 | 28 | 2,028
|- class com.ibm.ejs.j2c.RAWrapperImpl @ 0x15875eb0 | 28 | 1,612
|- class com.ibm.ejs.j2c.XMLReader @ 0x15e6ef88 | 28 | 156
|- class com.ibm.ejs.j2c.ConnectionFactoryRefBuilderImpl @ 0x15ed5468 | 28 | 140
|- class com.ibm.ejs.j2c.ConnectionFactoryDetailsImpl @ 0x15efc758 | 28 | 201,060
|- class com.ibm.ejs.j2c.ResourceAdapterDDImpl @ 0x1605ce60 | 28 | 220
|- class com.ibm.ejs.j2c.ConnectorPoolProperties @ 0x1605d900 | 28 | 972
|- class com.ibm.ejs.j2c.ConnectionManager @ 0x163eea78 | 28 | 196
|- class com.ibm.ejs.j2c.XATransactionWrapper @ 0x163f0a30 | 28 | 28
|- class com.ibm.ejs.j2c.ConnectionFactoryBuilderServerImpl @ 0x16431540| 28 | 364
|- class com.ibm.ejs.j2c.DefaultSecurityHelper @ 0x16434800 | 28 | 28
|- class com.ibm.ejs.j2c.MCWrapper @ 0x165542a0 | 28 | 764
|- class com.ibm.ejs.j2c.PoolManager$GetJ2CProperties @ 0x16577758 | 28 | 28
|- class com.ibm.ejs.j2c.SharedPool @ 0x16578100 | 28 | 28
|- class com.ibm.ejs.j2c.FreePool @ 0x165787f0 | 28 | 28
|- class com.ibm.ejs.j2c.CMConfigDataImpl$GetJ2CProperties @ 0x16977b30 | 28 | 28
'- Total: 19 entries | |
-------------------------------------------------------------------------------------------------------------
Я не просматривал их все, но казалось, что все записи хэш-карты имеют пустые значения.
Что могло быть причиной этого? Как мне получить дополнительную информацию?
Решение было: Increased max heap size for server from 256 to 768MB. Also enabled garbage collection logging.
Если вы используете Oracle, проблема может заключаться в потреблении памяти Oracle Connection Pool.
Посмотри это белая бумага, в частности раздел о настройке oracle.jdbc.implicitStatementCacheSize
параметр.