【发布时间】:2013-01-04 12:12:44
【问题描述】:
我有一个 weblogic 服务器,它在启动时会引发 OOM 错误。因此我的应用程序运行不正常。
我收集了堆转储[下面的快照],但是我不擅长理解输出。
Image Snap: http://img51.imageshack.us/img51/7470/heapanalysis.jpg
您能否帮助理解我为什么会收到 OOM 错误? 以下是 JVM 参数。
Starting WLS with line:
/java -server -Xms1536m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=6 -Xnoclassgc -XX:+DisableExplicitGC -verbose:gc -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSIncrementalMode -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError
以下是日志中看到的错误。
> java.lang.OutOfMemoryError: Java heap space Dumping heap to
> java_pid16660.hprof ...
> 115.814: [GC [1 CMS-initial-mark: 743854K(1048576K)] 743854K(1507328K), 0.0050472 secs]
> 115.819: [CMS-concurrent-mark-start] Heap dump file created [778142756 bytes in 3.935 secs] <Jan 20, 2013 10:56:05 PM PST> <Critical>
> <WorkManager> <BEA-002911> <WorkManager weblogic.kernel.System failed
> to schedule a request due to java.lang.OutOfMemoryError: Java heap
> space java.lang.OutOfMemoryError: Java heap space
> > <Jan 20, 2013 10:56:05 PM PST> <Critical> <WorkManager> <BEA-002911> <WorkManager weblogic.kernel.System failed to schedule a request due
> to java.lang.ArrayIndexOutOfBoundsExcept ion: 26214404
> java.lang.ArrayIndexOutOfBoundsException: 26214404
> at weblogic.work.CalendarQueue.add(CalendarQueue.java:39)
> at weblogic.work.RequestManager.addToPriorityQueue(RequestManager.java:263)
> at weblogic.work.RequestManager.executeIt(RequestManager.java:235)
> at weblogic.work.ServerWorkManagerImpl.schedule(ServerWorkManagerImpl.java:142)
> at weblogic.corba.cos.transactions.RecoveryRegistrar.run(RecoveryRegistrar.java:47)
> Truncated. see log file for complete stacktrace
【问题讨论】:
-
通过
Eclipse Memory Analyzer Tool运行您的 HPROF 堆转储 - 并查找"Leak Suspect"报告 - 通常是最好的起点。
标签: weblogic heap-memory