【发布时间】:2012-05-14 14:33:18
【问题描述】:
我从 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 问题。我这里有个问题,这里的'native buffer'和'direct byte buffer'一样吗?我可以尝试通过重置属性 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
【问题讨论】: