Skip to main content link. Accesskey S
  • HCL Logo
  • HCL Notes and Domino wiki
  • THIS WIKI IS READ-ONLY. Individual names altered for privacy purposes.
  • HCL Forums and Blogs
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • API Documentation
Search
Community Articles > Lotus Domino > Domino memory > HTTP/JVM Out of memory
  • Share Show Menu▼
  • Subscribe Show Menu▼

Recent articles by this author

HTTP/JVM Out of memory

You can monitor the Domino server(s) for error messages that indicate that the Java Virtual Machine (JVM) is out of memory; which can directly impact the HTTP process or the Domino server overall
Community articleHTTP/JVM Out of memory
Added by ~Maria Bubponemaroopsi | Edited by ~Maria Bubponemaroopsi on August 9, 2012 | Version 10
  • Actions Show Menu▼
expanded Abstract
collapsed Abstract
You can monitor the Domino server(s) for error messages that indicate that the Java Virtual Machine (JVM) is out of memory; which can directly impact the HTTP process or the Domino server overall
Tags: memory, serviceability, wiki, article, jvm, http, exception, OutOfMemoryError

This article is part of a larger series: Preventative Actions and Troubleshooting Common Domino Memory Issues


As a Domino administrator, you can monitor the Domino server(s) for error messages that indicate that the Java Virtual Machine (JVM) is out of memory; which can directly impact the HTTP process or the Domino server overall. There are several types of messages written to the Domino console that can be set up with alerts to notify admins once they occur.  Those messages are:

HTTP Web Server: Out Of Memory Exception
HTTP JVM: java.lang.OutOfMemoryError
HTTP JVM: OutOfMemoryError

Beginning in Domino 8.5.x the HTTP JVM size has been decoupled from the JavaMaxHeapSize ini parameter, which is applied to all other Domino server processes that load the JVM and can be controlled separately.  Since JavaMaxHeapSize sets the java heap for all other Domino server processes that load a JVM, for example, Agent Manager, Runjava, etc., then an Agent Manager process which periodically executes java agents will inherit the JVM heap size set in JavaMaxHeapSize. HTTPJVMMaxHeapSize sets the JVM heap only for the HTTP process.

Common causes for the above "out of memory" errors/exceptions is for HTTP JVM memory exhaustion when running Java agents, XPages, or servlets.




Actions to take

1.  Restart the HTTP process. If the problem is isolated only to HTTP private memory, perhaps recycling the HTTP process will allow memory to be reclaimed and available upon restart.

tell http quit
load http
2.  Ensure that the Java and/or JVM Heap Size is set appropriately. JavaMaxHeapSize applies pre-8.5 Domino and should be reviewed in pre-8.5 environments.  JavaMinHeapSize is also still valid for Domino 7.x and 8.0.1 servers.

Check your notes.ini for HTTPJVMMaxHeapSize. This value may need to be altered depending on Domino features enabled.
- The default value in 8.5 is 256Mb. 
- The default value in 8.5.2 is 64Mb. 
- On IBM i, 256Mb is required.

What is the HTTPJVMMaxHeapSize notes.ini parameter in Domino 8.5 and what should it be set to? (Technote #1377202)
On 8.5.2, HTTPJVMMaxHeapSize should be used instead of JavaMaxHeapSize (Technote #1456465)


3.  Ensure your application or agent is efficiently performing garbage collection
Why it is important to use the Recycle() method on every Java object (Technote #1097861)
Java memory management in Notes/Domino (Notes/Domino wiki article)


Monitor memory usage

1.  You can use the runtime statistics to ensure your application is not leaking memory
How do you check the memory usage of a Java application or agent? (Technote #1193060)
2.  You can monitor the memory Heap by adding the following code to your application:

Runtime s_runtime = Runtime.getRuntime ();
System.out.println(String.valueOf(s_runtime.totalMemory() - s_runtime.freeMemory()))

Be aware that Runtime.getRuntime().totalMemory() will not return 256 Mb if "JavaMaxHeapSize=268435456/256Mb" was set in the Notes.ini. It will grow as more memory is required and will return the OutOfMemory error or hang once it reaches the max threshold of 256 Mb.
Before attempting to collect a memory dump, you should ensure that you are facing a heap exhaustion. You can use JavaVerboseGC=1 to monitor this and how well objects are garbage collected.

3. In 8.5.3 and higher, you can enable a program document in conjunction with the new command to generate heap dumps to monitor the Java heap size.

How to automate the collection of memory dumps (Technote # 1104943)
tell http dump java heap

Data Collection

A. Enable debug for Java agents DebugShowJavaAgentTid=1 and Debug_Agent_Thread=1
What is the significance of using the notes.ini parameter, debugshowjavaagenttid=1 (Technote #1290419)

B.  Enable debug for Java servlets
How to debug a servlet running under the Domino Servlet Manager (Technote #1572868)


C. Collect Heap dumps for xPages related issues.
Starting with Domino 8.5.1, XSP component supports the following Domino console command to generate the size of the Java heap:
 
tell http xsp heapdump

Upon completion, the command would respond with the generated Java heap dump location:
 
tell http xsp heapdump
[086C:0002-1F70] 05-04-2011 10:40:47 AM  HTTP JVM: JVMDUMP007I JVM Requesting Heap dump using 'C:\Lotus\Domino85164Bits\heapdump.20110405.104047.2156.0001.phd'
[086C:0002-1F70] 05-04-2011 10:40:48 AM  HTTP JVM: JVMDUMP010I Heap dump written to C:\Lotus\Domino85164Bits\heapdump.20110405.104047.2156.0001.phd
D. Collect Java heap dumps, javacore(s), or Java system dumps
Starting in 8.5.3, the http server supports some java commands that allow Domino to dump jvm information like core, heap, system. The commands are as follows:

tell http dump java heap
tell http dump java core
tell http dump java system
tell http dump java * - dumps both core and heap

Note: It may take several minutes for the commands to be fully processed.


Recommendations

For web applications that require a large amount of memory to service requests, it is recommended that you utilize 64-bit Domino (available on AIX and Windows) for a larger memory footprint. 


Managing 64-bit memory in IBM Lotus Domino 8.x (Notes/Domino wiki article)


Related Documents

Domino 8.5.2 JVMs create extra AIX shared memory segments causing Domino server crash (Technote #1572118)


About the authors:
Monica Senior is an IBM Certified IT Specialist who works on the UNIX Crash & Performance Team.
Hilda Saucedo was the technical team lead for the Domino WebServer team and now works closely with Lotus Traveler Support.

Go back to: Preventative Actions and Troubleshooting Common Domino Memory Issues

  • Actions Show Menu▼


expanded Attachments (0)
collapsed Attachments (0)
Edit the article to add or modify attachments.
expanded Versions (1)
collapsed Versions (1)
Version Comparison     
VersionDateChanged by              Summary of changes
This version (10)Aug 9, 2012, 11:15:22 PM~Maria Bubponemaroopsi  
expanded Comments (0)
collapsed Comments (0)
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedAbout
  • HCL Software
  • HCL Digital Solutions community
  • HCL Software support
  • BlogsDigital Solutions blog
  • Community LinkHCL Software forums and blogs
  • About HCL Software
  • Privacy
  • Accessibility