我从 WebSphere Application Server 的 SystemOut.log 文件中得到以下错误:
[5/11/12 8:13:46:291 GMT+08:00] 000063c0 WebApp E [Servlet Error]-[ICMResourceManager]: java.lang.OutOfMemoryError: unable to allocate 79683 bytes for native buffer
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java:290)
at com.ibm.mm.icmrm.storage.RMOutputStream.write(RMOutputStream.java:65)
at com.ibm.mm.icmrm.storage.RMDataTransfer.copyData(RMDataTransfer.java:150)
at com.ibm.mm.icmrm.storage.filesystem.FileSystem.store(FileSystem.java:104)
似乎是本机OOM问题。我这里有个问题,这里的“本机缓冲区”和“直接字节缓冲区”一样吗?我可以尝试通过重置属性XX:MaxDirectMemorySize来扩大“本机缓冲区”的大小吗?顺便说一句,它的默认值是什么?或者我可以设置这个属性-Dcom.ibm.nio.DirectByteBuffer.AggressiveMemoryManagement=true以使本机内存空间动态?
WAS平台信息:
WebSphere Platform 6.1 [ND 6.1.0.27 cf270937.16] running with process name cmrmCell01\cmrmNode01\icmrm1 and process id 1802306
Detailed IFix information: Please use the versionInfo command to view this information
Host Operating System is AIX, version 5.3
Java version = 1.5.0, Java Compiler = j9jit23, Java VM name = IBM J9 VM