我从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 来尝试放大“原生缓冲区”大小吗? BTW,它的默认值是多少? 或者我可以设置此属性 -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