Feedback
 
Did this article resolve your question/issue?

   

Your feedback is appreciated.

Please tell us how we can make this article more useful. Please provide us a way to contact you, should we need clarification on the feedback provided or if you need further assistance.

Characters Remaining: 1025

 


Article

How to increase or modify java heap size for the AdminServer and ubrokers in OpenEdge ?

Information

 
Article Number000022572
EnvironmentProduct: OpenEdge
Version: 10.x, 11.x
OS: All supported platforms
Other: AdminServer, ubrokers
Question/Problem Description
How to increase or modify java heap size for the AdminServer in OpenEdge ?
How to increase java memory for AdminServer in OpenEdge?
Where to increase java heap for ubrokers?
How do we set jvmargs for individual ubrokers?
Where to set JVMARGS in OpenEdge?
How to adjust JVM memory heap size in OpenEdge?
How to address java.lang.OutOfMemoryError ?
Which jvmargs configuration settings take precidence?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Cause
Resolution
JVMARGS in OpenEdge release 10 and later are set in the AdminServerPlugins.properties file and also in ubroker.properties file for individual ubrokers. These are both located in the DLC/properties directory.

JVMARGS may be set the same for all processes/plugins started by the AdminServer if set under the [PluginPolicy.Progress.AdminServer] section of the AdminServerPlugins.properties file or each process may be tailored differently in their separate configuration area. (eg NameServer, AppServer, WebSpeed, DataServer)

jvmArgs can also be set in ubroker.properties file under specific broker definition, this setting in ubroker.properties file will overwrite any setting in AdminServerPlugins.properties.

In light of the above, the order of precidence is as follows:

AdminServer heap is set in dlc/properties/AdminServerPlugins.properties under [PluginPolicy.Progress.AdminServer] jvmargs=-Xmx256m -Xms128m

UBROKERS:
a. Set GLOBAL ubroker non-overidable in dlc/properties/AdminServerPlugins.properties under the [PluginPolicy] jvmargs=-Xms32m
b. Set GLOBAL ubroker overidable after commenting out (a) [PluginPolicy] setting specific jvmArgs in ubroker.properties under the [UBroker]; [NameServer]
c. Overide (b) setting for all UBroker-type setting specific ubroker jvmArgs in ubroker.properties under the [UBroker.AS] [UBroker.WS]
d. Overide (c) setting specific ubroker jvmArgs in ubroker.properties eg [UBroker.AS.asbroker1] [NameServer.NS1] [UBroker.WS]

The following examples demonstrate the information above:
  • -Xms <size> set initial Java heap size
  • -Xmx <size> set maximum Java heap size
EXAMPLE 1:  JVMARGS maximum memory limit is set to 256m for all AdminServer processes unless it is overridden by an individual process setting:

AdminServerPlugins.properties:

[PluginPolicy.Progress.AdminServer]
    pluginclasspath=!{value-of:classpath}
classpath=<path to all required jar files in DLC/java/ext DLC/java >
    jvmargs=-Xmx256m -Djava.awt.headless=true -Xbootclasspath/a:C:\Fathom-OE10.0b\fm/jars/pja.jar


Example 2: JVMARGS will use a minimum of 64m for all unified brokers under the AdminServer (eg: (NameServer, AppServer, WebSpeed, DataServer etc) in one place and will over-ride the global setting in Example 1. 

AdminServerPlugins.properties:
[PluginPolicy]
jvmargs=-Xms64m 

Example 3:  JVMARGS maximum memory limit is set to 512m for the SonicMQ Adapter and will over-ride the global setting in Example 1:

AdminServerPlugins.properties:

[PluginPolicy.Progress.SonicMQ]
    pluginclasspath=C:\OpenEdge10B\DLC/sonic/MQ7.5/lib/sonic_Client.jar,C:\OpenEdge10B\DLC/java/progress.jar
    classpath=C:\OpenEdge10B\DLC/sonic/MQ7.5/lib/sonic_Client.jar,C:\OpenEdge10B\DLC/java/progress.jar
    jvmargs=-Xmx512m 


Example 4: JVMARGS will use a minimum of 128m and maximum 1g java heap for asbroker1 and will over-ride the global setting in Example 1 and the unified brokers setting in Example 2. This change is made in the ubroker.properties file.

ubroker.properties:

[UBroker.AS.asbroker1]
jvmArgs=-Xms128m -Xmx1024m 


It is recommended to use the same size for the minimum and maximum heap size to reduce the periodic pause time that happens as a result of the cleaning up of the garbage collection to free-up the heap space. 

After the changes are made, re-start the AdminServer in order for the settings to take effect.
 
Workaround
Notes
References to Other Documentation: 
Progress Article(s):
000028882, "How do I modify Java heap size for Progress 9 ?".

NOTE:  For 32-bit Progress (i.e. 32-bit Java) the heap limit on Windows is between 1.4 - 1.6 GB.  This is a limitation of the way Windows handles memory.
Attachment 
Last Modified Date3/21/2018 5:20 PM