When a JVM crash occurs, you need to know as soon as possible. A JVM crash may be a sign of a severe runtime problem in an application and often call for immediate remediation steps.
This topic describes how to use AppDynamics JVM Crash Guard, which you can use to monitor and remediate JVM crashes.
Viewing JVM Crash Information
When a JVM crash occurs, a corresponding event type is generated in AppDynamics.
To analyze and troubleshoot the crash:
- In the Events window, double-click the JVM Crash of interest.
- Examine any logs associated with the JVM Crash event. (The local log folder is determined by the type of JVM and how it is configured. For more information, refer to the documentation for the specific JVM.)
The JVM Crash window also displays information about actions executed as a result of the crash. These are actions that you specify when creating a policy that is triggered by a JVM crash event. See Policies for more information.
The JVM Crash event details include the following information:
- Crash reason
- Hostname IP address
- Process ID
- Application name
- Node name
- Tier name
In the Crash Reason details field of the JVM Crash Details tab, the JVM Crash details indicate the root cause of the crash if available. For example, a java.lang.OutOfMemoryError or Segmentation Fault.
To facilitate the discovery and display of the reason for the JVM crash, JVM Crash Guard supports:
- Hotspot JVM error log analysis
- IBM JVM System Dump log analysis
- Jrockit JVM error log analysis
Start Monitoring for JVM Crashes
Before you can monitor JVM crashes, you must do the following:
- Install and enable a Machine Agent on the machine that you want to monitor for JVM crashes. JVM Crash Guard works with the Standalone Machine Agent to trigger an AppDynamics policy when a JVM Crash event occurs.
- Ensure that the Machine Agent is running with the required privileges.
- On Windows, the Machine Agent must run in Administrator root mode.
- On Linux, JVM Crash Guard requires that the Machine Agent user be able to read all the processes in /proc/*. This may be the ‘root’ user or another user with this privilege.
- Enable the JVM Crash Guard (it is disabled by default). Navigate to extensions/CrashGuard/conf/crashGuardConfig.yml and open the crashGuardConfig.yml file. Set
Once you have verified the requirements, follow these steps to create a policy for JVM crash events:
- From the left-hand navigation menu, click Alert & Respond > Policies and then click Create a Policy.
- In the Other Events section, expand the Server Crashes option and click JVM Crash.
The JVM Crash event then becomes a trigger to fire a policy.
- Proceed as usual to create the Policy. For more information on creating Policies, see Policies.
Note: If an uninstrumented JVM crash happens within less than a minute of a previous crash then it will not be reported by the Standalone Machine Agent. In some circumstances, the JVM may crash and then be restarted only to crash again within one minute. For this repetitive cycle crash and restart scenario, only the first JVM crash is reported by the agent.