Additional heap dump recommendations
While generating heap dumps, pay attention to the following facts:
- Heap dump generation frequently fails because the single file it generate is very large and the configuration of the supporting environment prevents regular accounts from creating such large files. Therefore, it is usually the case that you must provide some configuration to allow the account running the PolicyCenter instance to create such large files.
- The generation of a heap dump during out-of-memory conditions is sometimes challenging. As a JVM is reaching maximum memory utilization, it generally experiences severely degraded performance. As the pace of the leak decreases gradually, the occurrence of the out-of-memory condition might take an inordinate amount of time. This length of time might be incompatible with the need to restore performance for users or processes.
- Windows only: Windows
does not support signals. Therefore, generating a heap by starting the
JVM with a heap dump on
CTRL-BREAK, depends on the capacity to send aCTRL-BREAK. You cannot send aCTRL-BREAKto a JVM started as a background process. Therefore, for the time of the investigation, start the JVM from a command prompt rather than as a background process. - The JVM generally provides optional flags that prevent it from listening to signals. Disable these flags while trying to generate a heap dump through signals.
- Heap dump analysis is very memory intensive. Assume that the tool used to analyze the heap dump might need a heap two to three times larger than the amount of objects captured in the heap dump. Host the heap dump analyzer on a server with a 64-bit JVM and a significant amount of memory. If such a configuration is not available, you might want to reduce the heap size so that the memory leak reaches an identifiable threshold sooner. This method allows the generation of smaller, easier to analyze heap dumps.
- Heap dump analysis tools generally point to the CacheImpl class as the largest memory consumer. This class corresponds to the Guidewire cache. It is normal that the cache consumes a few hundred megabytes. In this case, the memory issue is likely not caused by cache growth. If the cache consumes significantly more memory, you might need to be downsize the cache. See Server caching.
