我的WebLogic服务器使用JRockit JVM R28。我们需要将WebLogicJVM配置为在发生OutOfMemoryError时自动关闭/终止/退出。
一个名为"ExitOnOutOfMemory"的JRockit JVM参数将帮助我们实现这一点。但是,Oracle文档提供了不正确且相互冲突的信息。
1.)http://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionXX.html表示只需将"-XXexitOnOutOfMemory"放入启动脚本中。但是,JRockit无法"识别"此参数。
2.)http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABCDAIB表示将"-XX:+ExitOnOutOfMemoryError"放入启动脚本中。然而,JRockit也无法识别这种配置。我相信他们错误地从Hotspot文档中复制了这个。
如何实现此参数?
-XX:+ExitOnOutOfMemoryError
与JRockit R28.2.2:一起正常工作
$ jrockit-jdk1.6.0_29/bin/java -Xmx20m -XX:+ExitOnOutOfMemoryError OOM
java.lang.OutOfMemoryError: allocLargeObjectOrArray: [B, size 40976
at jrockit/vm/Allocator.allocLargeObjectOrArray(JIZ)Ljava/lang/Object;(Native Method)
at jrockit/vm/Allocator.allocObjectOrArray(Allocator.java:349)
at jrockit/vm/Allocator.allocArray(Allocator.java:257)
at OOM.<init>(OOM.java:3)
at OOM.main(OOM.java:9)
at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
-- end of trace
[ERROR] Exit on OutOfMemory requested. Exiting.
JRockit aborted: Exit requested on OOM (51)
您正在使用哪个版本的JRockit?你把参数拼写对了吗?