Thursday, July 10, 2014

wlst goes in OutOfMemory... what to do?

If you invoke the wlst.sh, it's a can of worms of intricate shall calls, hard to disentangle:

/opt/oracle/fmw11_1_1_5/osb/common/bin/wlst.sh
/opt/oracle/fmw11_1_1_5/osb/common/bin/setHomeDirs.sh
/opt/oracle/fmw11_1_1_5/oracle_common/common/bin/wlst.sh
/opt/oracle/fmw11_1_1_5/wlserver_10.3/common/bin/wlst.sh
/opt/oracle/fmw11_1_1_5/wlserver_10.3/server/bin/setWLSEnv.sh



plus other stuff....

After some hunting, I discover that the JVM memory options are set in:


/opt/oracle/fmw11_1_1_5/wlserver_10.3/common/bin/commEnv.sh
and hardcoded to
MEM_ARGS=-Xms32m -Xmx200m -XX:MaxPermSize=128m

and there is no way you can pass these parameters BEFORE calling the script...

So finally your only option is to change commEnv.sh persistently...

Don't tell me this sucks, I already know...

So if you get the dreaded "Error: GC overhead limit exceeded", you can increase the MEM_ARGS settings or try to disable the error (I don't think this will help) with
-XX:-UseGCOverheadLimit



1 comment:

Matt (Brisbane/Australia) said...

Try

export CONFIG_JVM_ARGS="-Xms1024m -Xmx2048m"
$MW_HOME/oracle_common/common/bin/wlst.sh


ps auxwww | grep wlst
...
mshannon 9334 50.7 3.0 3442396 356760 pts/3 Sl+ 03:27 0:09 /u01/app/oracle/product/Middleware/jdk6/bin/java -Dprod.props.file=/u01/app/oracle/product/Middleware/wlserver_10.3/.product.properties -Dweblogic.wlstHome=/u01/app/oracle/product/Middleware/oracle_common/common/wlst: -DORACLE_HOME=/u01/app/oracle/product/Middleware/oracle_common -DCOMMON_COMPONENTS_HOME=/u01/app/oracle/product/Middleware/oracle_common -Xms32m -Xmx200m -XX:MaxPermSize=128m -Xms1024m -Xmx2048m weblogic.WLST