Java.Lang.OutOfMemoryError 错误——设置java Heap Size

1、确定当前系统可以设置的最大值:

Below command will help you to identify the maximum memory heap size than can be allocated to a JVM process.

java -mx[value]m -version

Start with a higher value like 4G or higher and slowly cut down to the maximum allowed value.

举例:

$ java -mx4096m -version

Invalid maximum heap size: -Xmx4096m
The specified size exceeds the maximum representable size.
Could not create the Java virtual machine.

$ java -mx4096m -version
[ERROR] Specified maximum heap size (4GB) is larger than the address space on this platform (4 GB).
Could not create the Java virtual machine.

从上面就知道本系统支持不了4g的大小。

Now lets reduce to a lesser value, viz., 3Gig

$ java -mx3072m -version
java version “1.5.0.04″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0.04-_27_jul_2006_10_52)
Java HotSpot(TM) Server VM (build 1.5.0.04 jinteg:07.27.06-16:18 IA64, mixed mode)

现在可以知道,3g大小是可以支持的。

2、设置java Heap大小的步骤:

First, you need to identify how much is the maximum heap size that you can set. Click here.

Once you had identified the maximum heap size, we need to change the configuration files to make it
permanent.

Step 1: Edit opmn.xml file.

Location : $INST_TOP/ora/10.1.3/opmn/conf/

Open opmn.xml

Search for string Xms or Xmx or module-id=”OC4J”

This search should lead you to below location

‘<’process-type id=”oacore” module-id=”OC4J” status=”enabled” working-dir=”$ORACLE_HOME/j2ee/home”‘>’
‘<’category id=”start-parameters”‘>’
‘<’data id=”java-options” value=”-server -verbose:gc -Xmx512M -Xms128M ……]

The default value for Maximum (-Xmx) and Minimum (-Xms) heap sizes are 512M and 128M respectively.

Again here you have options, you can set both Xms and Xmx has the same value as Xmx if you feel all your sessoins require higher memory or set a lower value for Xms and the maximum value for Xmx. Dont forget to change the values under ‘<’category id=”stop-parameters”‘>’

opmn.xml also contains jvm configurations for other components – oafm & forms.

Step 2: Edit oc4j.properties file.

Location : ($INST_TOP/ora/10.1.3/j2ee/oacore/config)

This step is optional since we had already made changes in opmn.xml but there is no harm in making the change here. This step will come handy for troubleshooting specific components of
Oracle viz., configurator, iSupplier or any other option which heavily utilizes/consumes CPU/memory.

Search for string Xms or Xmx or wrapper.

Option 1: If you find any of the above parameters change the values corresponding to the value you had  mentioned in opmn.xml or
even more than that, as long as you dont exceed the maximum heap size limit.

Option 2: If you DO NOT find any of the above parameters, then make an entry like this, under the heading “# Java Object Cache Configuration Parameters”

wrapper.bin.parameters=-Xms[Value]M -Xmx[Value]M -XX:NewSize=256M -XX:MaxNewSize=256M

Step 3: Edit Applications Context file

vi $CONTEXT_FILE

Location: $INST_TOP/appl/admin/SID_hostname.xml

search for string s_oacore_jvm_start_options

Change Xms and Xmx value. Repeat the same step for parameter s_oacore_jvm_stop_options.

Changes made in Step 3 will take effect the next time you run autoconfig, whereas Step 1 & 2 changes will take effect the next time you bounce opmn services, but the values are not permanent in the sense these will be wiped off next time you run autoconfig.
Yes you can preserve the changes by placing it inbetween Begin and End customizations.

You can also increase the Garbage Collection threads parameter (-XX:ParallelGCThreads) to a higher value if you have JDK 1.5 or more than 2 cpus or more memory. For more information on this you can refer to Metalink Note: 362851 – Guidelines to setup the JVM
in Apps Ebusiness Suite 11i and R12.

cheers,
oraclePitStop.

时间: 2024-12-05 10:19:16

Java.Lang.OutOfMemoryError 错误——设置java Heap Size的相关文章

java.lang.OutOfMemoryError 错误整理及解决办法_java

java.lang.OutOfMemoryError处理错误 java.lang.OutOfMemoryError异常解决方法 原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多重复的对象实体: 4.使用的第三方软件中的BUG: 5.启动参数内存值设定的过小: 常见错误提示: 1.tomcat:java.lang.OutOfMemoryError: Perm

java.lang.OutOfMemoryError错误的问题,怎么办啊,打包完了手机顽童可以打开

问题描述 importjava.io.IOException;importjava.io.InputStream;importjava.util.Random;importjava.io.ByteArrayInputStream;importjava.io.IOException;importjavax.microedition.media.Manager;importjavax.microedition.media.MediaException;各位仁兄,小弟初学,不知道代码哪里的原因,帮帮忙

java.lang.OutOfMemoryError: PermGen space: java reflection

原文地址:https://stackoverflow.com/questions/16130292/java-lang-outofmemoryerror-permgen-space-java-reflection/47090043#47090043 问题 使用如下java反射代码: Method method = LogFactory.class.getDeclaredMethod("getContextClassLoader"); method.setAccessible(true)

服务器java.lang.OutOfMemoryError: allocLargeArray内存溢出的解决

今天一个web服务器不工作了,查看日志.tomcat报出如下信息: Caused by: java.lang.OutOfMemoryError: allocLargeArray - Object size: 80040, Num elements: 40010 以上日志信息基本的意思是程序要分配一个大小为 80040字节的数组(在JVM中数组也是对象,也是在heap中分配的),40010是指数组元素的多少.但是分配这个数组的时候, heap没有可用的空间了. 针对以上情况,解决办法如下: A:调

公司的系統點擊一個功能的時候報java.lang.OutOfMemoryError: PermGen space

问题描述 在公司的系統中點擊了一個打印的功能,前臺是用flex,后臺是java,打印的時候是彈出來一個jsp頁面,中間夾了大量的計算.在本地測試沒事 可以彈出來jsp頁面,但是放在測試機上時候就會報如下異常,我在測試服務器的環境變量里設置了 变名:JAVA_OPTS 变量值:-Xms1024m -Xmx1024m 還是沒有作用,不知道應該怎么處理了.是程序的問題嗎?java.lang.OutOfMemoryError: PermGen spaceat java.lang.ClassLoader.

java.lang.OutOfMemoryError: Java heap space java内存溢出问题 有错误信息

问题描述 java.lang.OutOfMemoryError: Java heap space java内存溢出问题 有错误信息 2013-12-26 11:18:09 [ERROR]-[rmss:165] Housekeeping log.error( : java.lang.OutOfMemoryError: Java heap spaceat java.lang.AbstractStringBuilder.(AbstractStringBuilder.java:45)at java.la

java.lang.OutOfMemoryError: Java heap space 解决方法

java.lang.OutOfMemoryError: Java heap space 解决方法 这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个. 1.可以在windows 更改系统环境变量加上JAVA_OPTS=-Xms64m -Xmx512m 2,如果用的tomcat,在windows下,可以在 C:/tomcat5.5.9/bin/catalina.bat  中加上: set JAVA_OPTS=-Xms64m -Xmx256

找出导致java.lang.OutOfMemoryError: Java heap space问题的数据

问题描述 引起java.lang.OutOfMemoryError:Javaheapspace异常,可能是由JAVA的堆栈设置太小的原因,在网上查了下都是调整jvm大小的,但这个方法治标不治本呀!!!!,当数据增大是依然会报溢出错误,总不至于再把jvm调大吧.有没有办法找到导致溢出的数据,之前听同事说有办法找到,但是不知道怎么找的,求大神指导 解决方案 解决方案二:upup解决方案三:错误是在tomcat启动的时候报的解决方案四:是不是你程序代码的问题呢?解决方案五:引用3楼rui888的回复:

springmvc 实现文件下载 出现异常java.lang.OutOfMemoryError: Java heap space

问题描述 springmvc 实现文件下载 出现异常java.lang.OutOfMemoryError: Java heap space 网上找解决方案,一般都是tomcat中添加-Xms256m -Xms512m等配置,但是不行啊. 我的是MyEclipse里的tomcat. 下载20M(包括)以内的文件没问题,超过就会报异常,有什么解决办法吗? 还有是不是请求下载文件时,服务器会把文件全部装入内存再发过来,还是分成多个部分发送,超过内存大小的文件如何发送呢? ** --异常信息 ** ty