EBS: R12 Default OACORE Memory Settings Are Not Enough

Dec 10, 2012 / By Yury Velikanov

Tags: , ,

Not many of you know that my day-to-day work focus is Oracle E-Business Suite :). Here goes for an EBS-related blog post…

Recently, several of my team’s clients upgraded to version R12.1.3 and faced the same problem related to OACORE memory settings.

Default configuration

OACORE OC4J containers’s default memory parameters are “-Xmx512M -Xms128M”. This is way too small for most EBS systems (unless you are running a sand box environment). You can use the following command to find the setup in your system:

[applmgr@appshost01 scripts]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@appshost01 scripts]$ ./adoacorectl.sh status | grep "OC4J:oacore" | awk -F"|" '{print $3}' | while read L ; do ps -fp $L | grep -v PID ; done | awk -F"-X" '{print $2 $3}'
mx512M ms128M
mx512M ms128M
[applmgr@appshost01 scripts]$

My suggestion

As always, it’s kind of difficult to suggest anything specific. (It depends on the situation.) However, instead of using “-Xmx512M -Xms128M”, I would start with  “-Xmx2048M -Xms1024M” set up. To change the memory parameters, edit $CONTEXT_FILE and change the following line:

[applmgr@appshost01 scripts]$ grep s_oacore_jvm_start_options $CONTEXT_FILE
         ... -server -verbose:gc -Xmx2048M -Xms1024M ...
[applmgr@appshost01 scripts]$

To finalize the setup run:


And restart OACORE component:

./adopmnctl.sh stopall
./adopmnctl.sh startall

Side notes

  • I do believe that if Java and applications’ code would be bug-free, “s_oacore_nprocs” parameter should be set to 1 for most of the systems.
  • However, Oracle instructs us to set an additional OARCORE process for all 200 users.
  • In most systems I have worked with, the parameter was set to 2.
  • Having multiple OACORE OC4J processes per environment makes it difficult to monitor the health of each container.
  • If you know how to make sure that each of the OACORE containers generates a correct response (we typically check login screen using the text browser from our monitoring system), then please help me out and share your solution in the comments section of this blog post.

Emergency fix

Just in case you need to fix an issue quickly, you may want to edit $INST_TOP/ora/10.1.3/opmn/conf/opmn.xml file directly and restart OPMN processes to enable new parameters.
P.S. Don’t forget to edit $CONTEXT_FILE to keep it in sync.

As always, any comments are welcome!


View Yury Velikanov's profile on LinkedIn

Share this article

6 Responses to “EBS: R12 Default OACORE Memory Settings Are Not Enough”

  • Jan Ohlendorff says:

    Use reload to enable new parameters instead of adopmnctl.sh stopall/startall
    adopmnctl.sh reload
    You are running adopmnctl.sh version 120.4.12000000.3

    opmnctl: reconfiguring opmn…
    opmnctl: opmn reloaded successfully…

  • Raghu says:


    I want to know how many oacore process are running on machine,

    OC4JGroup:default_group | OC4J:forms | 14508 | Alive
    OC4JGroup:default_group | OC4J:oacore | 9180 | Alive
    HTTP_Server | HTTP_Server | 9020 | Alive

    prompt JDBC Connection Usage Per JVM Process
    prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    select machine, process, count(*) from gv$session
    where program like ‘%JDBC%’
    group by machine,process
    order by count(*) desc

    I will find the howmany process are connect to JDBC ,I want to know what are they,all are oacore or different.

  • fox dba says:

    reload do not change value given by
    $ADMIN_SCRIPTS_HOME/adoacorectl.sh status | grep “OC4J:oacore” | awk -F”|” ‘{print $3}’ | while read L ; do ps -fp $L | grep -v PID ; done | awk -F”-X” ‘{print $2 $3}’

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>