Intermittent memory issues and hangs in Domino Designer
While using IBM Domino Designer, you are experiencing repeated hangs or symptoms of memory issues (such as the error, "JVM: Out of Memory") even though your machine has at least 2 GB of physical RAM. Although the problems are frequent, you are unable to link them to a particular set of steps. You may observe that the issues occur more often under certain conditions, but there's still an intermittent nature to the problem.
Other possible patterns or symptoms:
- The issues are more likely to show themselves after Designer has been running for a few hours.
- The hour glass (busy cursor) is displaying more frequently, even when performing seemingly simple tasks such as opening a form or an XPage.
- Switching between editors is now taking awhile.
Resolving the problem
Most likely, a set of default configurations for Notes/Designers' use of the JVM needs to be modified. The JVM is the runtime upon which Java programs execute. For Notes and Domino Designer, the JVM settings are stored in a file called jvm.properties that is located in the following path:
<Notes program dir>/framework/rcp/deploy/jvm.properties
By default, the properties file has the following values:
If you have at least 2 GB of physical RAM, close all instances of Notes, Domino Designer, and Domino Administrator, and then change the settings to the following values:
NOTE: In a post Notes/Designer 9.0 releases, higher values, not necessarily matching the values suggested above, will be set by default. But, for 9.0, you will need to change them manually.
- vmarg.XMx - defines the maximum amount of memory that Notes/Designer will consume.
- vMarg.XMs - defines the minimum amount of memory that Notes/Designer will consume.
- vmarg.Xmca - defines the block size by which Notes/Designer will increase memory by when either need more than the minimum.
- With these changes, Notes and Designer will start out with 512 MB memory (up from 48 MB) and, if more memory is needed, the JVM will add blocks of 512 KB and finally cap out at 768 MB.
- The result of these changes is that Notes and Designer have more of the available memory to start out with. Equally important, when Designer needs more memory, it will be able to assign it in blocks up to 768 MB.
- With the original settings, Designer can spend a great deal of time adding memory in small 8 K blocks or trying to free preassigned memory blocks when the 256 MB upper limit is reached. As a result, it appears to hang/freeze when actually it is working to allocate or free up memory in order for the program to run.
- Notes and Designer share the same JVM, so the changes you make will also change Notes' use of the JVM. Possible considerations:
- If Notes is run, it will have the same heap size settings as Designer.
- Notes, when run without Designer, will also have a minimum memory footprint of 512 MB and a maximum footprint of 768 MB.
- When Notes and Designer are run at the same time they will share the assigned memory, that is the maximum memory usage by the two programs combined will not exceed 1024 MB.
If a developer suspects the JVM properties may be related to poor experience in Designer but is reluctant to edit the jvm.properties file without more information, the developer can use the Java heap monitor tool in Designer to display the amount of memory used.
The Java heap monitor is enabled in Designer properties. Detailed steps to enable it are:
1. In Designer, choose File -> Preferences.
2. Change to the General preference panel.
3. Select the checkbox for "Show heap size" and then click OK.
The monitor displays information on the status bar. If you see Designer is consistently running with 75% to 80% (or more) of the available memory used, this indicates Designer does not have enough memory to operate effectively. The jvm.properties file must be modified as documented above.