The APM Insight Java Agent is a small software component that gets installed alongside the customer's Java application. Once installed and the application is restarted, it automatically monitors the application's performance and sends data to Applications Manager.
What it monitors:
Supported Java Versions: JDK/JRE 1.5 to 24
Key files to know:
apminsight-javaagent.jar |
The agent file — loaded via -javaagent JVM argument |
apminsight.conf |
Configuration file — contains license key, AppManager URL, app name, port |
apminsight_startup_*.log |
Startup log — first file to check during troubleshooting |
apminsight_agent_*.log |
Runtime log — ongoing activity, data dispatch, errors |
apminsight.conf. Only the initial onboarding keys (license.key, apm.host, application.name, agent.server.port) are set during installation.
Important: All checks must be performed on the customer's application server machine (where the agent is installed) — not on the Applications Manager server (unless specifically stated).
Why: All subsequent checks assume you are inside the agent directory. Also, before troubleshooting the agent, confirm that the customer's Java application is actually running and check how it was started.
Step A: Navigate to the agent directory
All commands in this checklist are relative to the agent directory. First, cd into it:
cd <agent_directory>
cd <agent_directory>Before checking the agent, confirm that the customer's Java application process is running and inspect its startup command to verify the -javaagent argument is present.
ps -ef | grep java | grep -v grep
Get-WmiObject Win32_Process -Filter "name='java.exe'" | Select-Object ProcessId, CommandLine | Format-List✅ Java process found with -javaagent:...apminsight-javaagent.jar in command line |
Good — the application is running and the agent argument is configured. Proceed to Step 1. |
⚠ Java process found but NO -javaagent argument |
The agent was not added to the application startup. Ask the customer to add the -javaagent argument to the correct configuration file (see Section 5) and fully restart the application. |
| ❌ No Java process found | The customer's application is not running. Ask them to start it first, then proceed with troubleshooting. |
-Dapminsight.home usage, etc.).
Why: The startup log is created when the agent loads into the Java application. If it doesn't exist, the agent was never loaded.
What to check: Look for a file named apminsight_startup_<timestamp>_<PID>.log in the agent directory.
How to check:
ls -lt apminsight_startup_*.log
Get-ChildItem "apminsight_startup_*.log" | Sort-Object LastWriteTime -DescendingExpected result: One or more startup log files should exist. Check the latest one (most recent timestamp).
| ✅ Log exists | Agent was loaded. Proceed to Step 2. |
| ❌ No log file found | Agent was NOT loaded. The -javaagent argument is either missing, incorrect, or placed in the wrong configuration file. Check the following:
|
Why: Even if the startup log exists, the agent may have failed during initialization.
What to check: Open the latest apminsight_startup_*.log and look for the success message.
How to check:
grep -i "hooked up with JVM" apminsight_startup_*.log
Select-String -Path "apminsight_startup_*.log" -Pattern "hooked up with JVM"Expected result:
[INFO]: APM Insight javaagent v7.x.x.x successfully hooked up with JVM (PID:xxxxx)
| ✅ Message found | Agent loaded successfully. Proceed to Step 3. |
| ❌ Message not found or errors | Open the startup log and check the first few lines for error messages. Common causes: incompatible Java version, corrupt JAR file, or permission issues. Proceed to Step 4 to verify Java version. |
Why: The agent only loads when the JVM starts. A "hot reload" or "redeploy" through the application server admin console does NOT reload the agent.
What to check: Confirm the customer performed a full application server restart (stop + start) after adding the -javaagent argument.
How to verify:
Check the timestamp on the latest apminsight_startup_*.log — it should be after the most recent restart time.
ls -lt apminsight_startup_*.log | head -1
Get-ChildItem "apminsight_startup_*.log" | Sort-Object LastWriteTime -Descending | Select-Object -First 1| ✅ Timestamp matches recent restart | Restart is confirmed. Proceed to Step 4. |
| ❌ Timestamp is old / doesn't match | Ask the customer to perform a full stop and start of the application server (not just a reload or redeploy). Then recheck from Step 1. |
Why: The current agent (v7.x) requires Java 8 or above. Older Java versions need a legacy agent.
What to check: The Java version of the application (not just what's installed on the system — the application may use a different Java).
How to check (from startup log — easiest method):
grep -i "java version\|java.version\|JVM Version" apminsight_startup_*.log
Select-String -Path "apminsight_startup_*.log" -Pattern "java version|java.version|JVM Version"Alternative — check from command line:
java -versionNote: The java -version command shows the system default Java. The application may use a different Java version. Always prefer checking from the startup log.
| ✅ Java 8 or above | Compatible with current agent. Proceed to Step 5. |
| ❌ Java 5, 6, or 7 | Current agent (v7.x) does NOT support this version. Options:
|
Supported JVM list: JVM / JDK Supported
Why: The agent needs four key settings to connect to Applications Manager. If any of them are wrong, empty, or missing, the agent cannot onboard.
What to check: Open apminsight.conf in the agent directory and verify these four values:
| Setting | What it should be | How to verify |
|---|---|---|
license.key |
APM Insight license key from Applications Manager | In AppManager: APM → Add New Monitor → Java → copy the license key from the right panel |
apm.host |
Full URL of Applications Manager (e.g., https://appmanager.example.com:8443) |
In AppManager: Settings → Tools → Support → Installation Information → note Web Server Port & SSL Port |
application.name |
A meaningful name for the monitored application | Should not be empty |
agent.server.port |
Port where the customer's application runs (e.g., 8080) | Should match the actual application port |
How to check (quick view):
grep -E "^(license\.key|apm\.host|application\.name|agent\.server\.port)" apminsight.conf
Select-String -Path "apminsight.conf" -Pattern "^(license\.key|apm\.host|application\.name|agent\.server\.port)"| ✅ All four values present and correct | Configuration looks good. Proceed to Step 6. |
| ❌ File is empty or values are missing/wrong | If the conf file is completely empty, this is likely a shared directory issue — see Step 11. Otherwise, ask the customer to fill in the correct values and restart the application. |
Why: From agent v7.x onwards, the agent creates an instance subdirectory named <application.name>_<port> (e.g., MyApp_8080) inside the agent directory. All runtime logs (apminsight_agent_*.log) and instance-specific data are maintained in this folder. If this folder doesn't exist, the agent never completed registration.
What to check: Look for a subdirectory matching the pattern <app-name>_<port> (or <app-name>:<port>) inside the agent directory.
How to check:
ls -ld */
Get-ChildItem -DirectoryExpected result: A folder named like MyApp_8080 (matching the application.name and agent.server.port from apminsight.conf). Inside it, you should find apminsight_agent_*.log files.
| ✅ Instance folder exists with agent logs | Agent registered and created its instance directory. Check apminsight_agent_*.log inside the folder for ongoing activity and errors. Proceed to Step 7. |
| ⚠ Instance folder exists but no agent logs inside | The agent started registration but may have failed. Check the startup log (apminsight_startup_*.log) for connection errors or response codes. Proceed to Step 7. |
| ❌ No instance folder found | The agent never completed onboarding. Possible causes: Continue with the remaining steps to identify the root cause. |
-Dapminsight.home=<custom_path>, the instance folder will be created at that custom path instead of the default agent directory. Check the process command line (from Before You Start) for the -Dapminsight.home value.
Why: The agent needs to communicate with Applications Manager over the network. If there's a firewall, proxy, or incorrect URL, the agent cannot send data.
What to check: From the customer's application server machine (where the agent is installed), test if Applications Manager is reachable.
How to check:
curl -ks <apm.host value from conf>/index.do | grep -i 'Applications Manager'
add-type 'using System.Net;using System.Security.Cryptography.X509Certificates;public class TrustAllCertsPolicy : ICertificatePolicy {public bool CheckValidationResult(ServicePoint a,X509Certificate b,WebRequest c,int d){return true;}}';[System.Net.ServicePointManager]::CertificatePolicy=New-Object TrustAllCertsPolicy;(Invoke-WebRequest -Uri '<apm.host value from conf>/index.do').Content -split "`n" | Where-Object {$_ -match 'Applications Manager'}Note: Replace <apm.host value from conf> with the actual URL from apminsight.conf (e.g., https://appmanager.example.com:8443). Use https:// if SSL is enabled, otherwise http://.
Also check the startup log for connection errors:
grep -i "Connection.*failed\|SSL handshake\|endpoints failed" apminsight_startup_*.log
Select-String -Path "apminsight_startup_*.log" -Pattern "Connection.*failed|SSL handshake|endpoints failed"| ✅ curl/PowerShell output contains "Applications Manager" | Network connectivity is fine. Proceed to Step 8. |
| ❌ Connection failed / No output / Timeout |
Resolution:
|
| ⚠ "SSL handshake failed" / "curveId: 29" |
This is an SSL/TLS compatibility issue with older Java 8 versions. Resolution (choose one):
|
Why: When the agent connects to Applications Manager, the server sends back a response code. This code tells us exactly what's happening.
How to check:
grep -i "Response Code" apminsight_startup_*.log
Select-String -Path "apminsight_startup_*.log" -Pattern "Response Code"What the response codes mean and what to do:
| Code | Meaning | What to do |
|---|---|---|
| 911 | Success. Agent is active and sending data. | No action needed. If the application still doesn't appear in the UI, ask the customer to generate some traffic (hit the application endpoints) and wait a few minutes. |
| 901 | Invalid license key. | The license.key in apminsight.conf doesn't match the AppManager instance configured in apm.host. Get the correct key from: APM → Add New Monitor → Java → right panel → copy license key. Update and restart. Grace period: 3 days. |
| 701 | License expired. | The "APM Insight Java Add-On" license has expired. Renew the license. Agent auto-recovers within 15-day grace period (no restart needed). Check in AppManager: APM → Add New Monitor → Java to verify license status. |
| 702 | License instance limit exceeded. | Too many agents for current license. Upgrade license or remove/unmanage unused monitors. Grace period: 15 days. |
| 900 | Monitor was deleted from AppManager. | Re-add the monitor within 3 days. Otherwise, restart the application after re-adding. Grace period: 3 days. |
| 910 | Monitor is unmanaged. | The monitor is set to "Unmanaged" in AppManager UI. Manage it from the APM tab. Agent resumes automatically. |
For detailed response code information, see Section 3.
| ✅ Response code 911 (Success) | Agent is connected and working. If data is still not appearing, ask the customer to generate traffic and wait 2-3 minutes. |
| ❌ Any other code or no response code | Follow the action listed for that code in the table above. If no response code is found, go back to Step 7 to check connectivity. |
Why: Running multiple bytecode instrumentation agents (like Dynatrace, New Relic, AppDynamics, Glowroot) alongside APM Insight is NOT supported and can cause JVM instability, application crashes, WAR deployment failures, excessive memory usage, and unpredictable monitoring behavior.
What to check: See if other monitoring agent arguments are present in the Java process.
How to check (from startup log — easiest):
grep -i "Java Arguments" apminsight_startup_*.log | grep -iE "dynatrace|appdynamics|glowroot|newrelic|agentpath|elastic.*apm"
Select-String -Path "apminsight_startup_*.log" -Pattern "Java Arguments" | Select-String -Pattern "dynatrace|appdynamics|glowroot|newrelic|agentpath|elastic.*apm"Alternative — check the running process directly:
ps -ef | grep java | grep -iE "javaagent|agentpath"
Get-WmiObject Win32_Process -Filter "name='java.exe'" | Select-Object CommandLine | Format-ListHow to identify each competitor agent:
| Agent | How to detect in process args | Also check for | Removal steps |
|---|---|---|---|
| Dynatrace OneAgent | -agentpath:*/liboneagentloader.so (Linux)-agentpath:*/oneagentloader.dll (Windows) |
Environment variables: DT_TENANT, DT_CONNECTION_POINT, LD_PRELOAD containing oneagent |
Remove the -agentpath argument from the application startup config. If auto-injected by OneAgent, disable auto-injection for the process or uninstall OneAgent from the host. Restart the application. |
| New Relic | -javaagent:*/newrelic.jar or -javaagent:*/newrelic-agent.jar |
Environment variables: NEW_RELIC_LICENSE_KEY, NEW_RELIC_APP_NAME, NEW_RELIC_HOMEConfig file: newrelic.yml |
Remove the -javaagent:*/newrelic*.jar argument. Unset New Relic environment variables if present. Restart the application. |
| AppDynamics | -javaagent:*/javaagent.jar (with AppDynamics path, e.g., */appagent/javaagent.jar) |
System properties: -Dappdynamics.controller.hostName, -Dappdynamics.agent.tierName |
Remove the -javaagent argument and all -Dappdynamics.* system properties. Restart the application. |
| Glowroot | -javaagent:*/glowroot.jar |
— | Remove the -javaagent:*/glowroot.jar argument. Restart the application. |
| Elastic APM | -javaagent:*/elastic-apm-agent*.jar |
System properties: -Delastic.apm.*Config file: elasticapm.properties |
Remove the -javaagent argument and -Delastic.apm.* properties. Restart the application. |
Important: Dynatrace, New Relic, AppDynamics, and Glowroot all use bytecode instrumentation — the same technique as APM Insight. Running two bytecode agents simultaneously causes class transformation conflicts leading to: JVM crashes (hs_err_pid*.log), WAR deployment hangs, intermittent 500 errors, and excessive memory consumption. This is confirmed by all major APM vendors' documentation — co-existence is NOT supported by any of them.
Known symptoms when multiple agents are loaded:
ClassNotFoundException or NoClassDefFoundError during application startuphs_err_pid*.log files generated| ✅ Only APM Insight agent found | No conflict. Proceed to Step 10. |
| ❌ Other agent(s) found | Resolution: Ask the customer to remove or disable the competing agent using the removal steps in the table above. The competing agent must be fully removed (argument + environment variables) and the application must be restarted before proceeding. Validate stability after removal before continuing with APM Insight troubleshooting. |
Why: The agent needs to write log files and temporary data into its directory. If the user running the application doesn't have write access to the agent folder, the agent will fail silently.
What to check:
How to check:
Find the application user:
ps -ef | grep java(The first column shows the username running the process.)
Check agent folder ownership:
ls -la <agent_directory>Fix permissions if needed:
chown -R <app_user>:<app_group> <agent_directory>Find the application user:
Open Task Manager → Details tab → find the java.exe process → note the "User name" column.
Check agent folder permissions:
Right-click the agent folder → Properties → Security tab → check if that user has Read & Write access.
Fix permissions if needed:
Right-click agent folder → Properties → Security → Edit → Add the user → Allow Read & Write.
| ✅ Application user has read/write access | Permissions are fine. Proceed to Step 11. |
| ❌ Wrong owner or missing permissions | Resolution: Fix ownership/permissions using the commands in the tab above, then restart the application. |
This is one of the most common onboarding failures!
Why: If the customer runs multiple Java applications (e.g., microservices) on the same server and they all point to the same agent folder, the configuration file gets corrupted because multiple processes try to write to it at the same time.
Signs of this issue:
apminsight.conf file is completely empty or has garbled/truncated contentHow to verify:
Ask the customer: "Are you running multiple Java applications on this server?" If yes, check if they all reference the same -javaagent path.
ps -ef | grep java | grep -o "\-javaagent:[^ ]*\|\-Dapminsight.home=[^ ]*"
Get-WmiObject Win32_Process -Filter "name='java.exe'" | Select-Object CommandLine | Format-ListLook for multiple processes using the same agent JAR path without a -Dapminsight.home argument.
| ✅ Each JVM has its own directory (or only one JVM) | No conflict. If all previous steps passed and the issue persists, escalate with the details collected from all steps above. |
| ❌ Multiple JVMs share the same directory |
Resolution: Each application must have its own agent directory. Ask the customer to use -Dapminsight.home to point each JVM to a unique directory:
-javaagent:/opt/apminsight-agent/apminsight-javaagent.jarEach application gets a separate folder under the agent directory using -Dapminsight.home.Refer: KB: Monitor Multiple Applications on Single Server |
cd <agent_directory> + verify Java process running-javaagent not applied-Dapminsight.home
When the agent connects to Applications Manager, it receives a response code. This code is logged in apminsight_startup_*.log and apminsight_agent_*.log.
[26 Feb 2026 15:50:39.609][apminsight-2-thread-2][INFO]: Collector Response Code: 911(Manage the agent.)
[26 Feb 2026 15:50:39.610][apminsight-2-thread-2][INFO]: 47 metric(s) dispatched for context ''. Context currently enabled:true
[24 Jan 2026 10:53:53.695][apminsight-services-starter][INFO]: Collector Response Code: 901(Invalid agent.)
java.lang.RuntimeException: Agent didnot receive instance-id from server.
license.key in apminsight.conf and restart the application.[24 Jan 2026 10:53:53.695][apminsight-services-starter][INFO]: Collector Response Code: 701(License expired. Kindly update license!)
[24 Jan 2026 10:53:53.695][apminsight-services-starter][INFO]: Collector Response Code: 702(Number of instances supported for this license exceeds the limit.)
[24 Jan 2026 10:53:53.695][apminsight-services-starter][INFO]: Collector Response Code: 900(Delete the agent.)
[24 Jan 2026 10:53:53.695][apminsight-services-starter][INFO]: Collector Response Code: 910(Unmanage the agent.)
[24 Jan 2026 10:53:53.710][apminsight-services-starter][INFO]: Disabling monitoring for context '...'
| File | Location | When to look at it |
|---|---|---|
apminsight_startup_*.log |
Agent root directory | Always check this first. Shows startup, configuration loaded, connection attempts. |
apminsight_agent_*.log |
Instance subdirectory | For ongoing issues (data not sent, errors after initial onboarding). |
apminsight.conf |
Agent root & instance dir | To verify configuration values. |
| You see this in the log... | What it means |
|---|---|
successfully hooked up with JVM |
Good — agent loaded successfully into the application. |
Agent successfully connected to the server |
Good — agent connected to Applications Manager. |
Connection to ... has failed |
Agent cannot reach Applications Manager. See Step 7. |
SSL handshake failed |
SSL/TLS compatibility issue. See Step 7 (SSL section). |
Response Code: 901 |
Invalid license key. See Step 8. |
Response Code: 701 |
License expired. See Step 8. |
Response Code: 911 |
Normal success — agent is active and sending data. |
Disabling monitoring |
Monitor is set to "Unmanaged" in AppManager. Manage it from the UI. |
Agent shutting down |
Agent stopped. Check the lines before this for the reason. |
[24 Jan 2026 10:52:10.120][main][INFO]: APM Insight javaagent v7.x.x.x successfully hooked up with JVM (PID:12345)
[24 Jan 2026 10:52:10.250][main][INFO]: apm.host configured: https://appmanager.example.com:8443
[24 Jan 2026 10:52:10.300][main][INFO]: APM Insight agent started successfully.
[24 Jan 2026 10:52:15.500][apminsight-services-starter][INFO]: Identified 1 contexts. Initiating context registration.
[24 Jan 2026 10:52:15.600][apminsight-services-starter][INFO]: App Server: TOMCAT
[24 Jan 2026 10:52:16.100][apminsight-services-starter][INFO]: Agent successfully connected to the server.
[24 Jan 2026 10:53:20.447][apminsight-2-thread-2][INFO]: Collector Response Code: 911(Manage the agent.)
[24 Jan 2026 10:53:20.447][apminsight-2-thread-2][INFO]: 0 metric(s) dispatched for context ''. Context currently enabled:true
Full installation guide: APM Insight Java Agent – Installation Help
-javaagent argumentapminsight-javaagent.zip from Applications Managerapminsight.conf with the four required values:license.key=<YOUR_LICENSE_KEY>
apm.host=https://<AppManager_Host>:<Port>
application.name=<Your_Application_Name>
agent.server.port=<App_Running_Port>
-javaagent argument to the application startup configuration (see server-specific links below)| Apache Tomcat | Install Guide |
| JBoss EAP | Install Guide |
| WildFly | Install Guide |
| Oracle WebLogic | Install Guide |
| IBM WebSphere | Install Guide |
| GlassFish | Install Guide |
| Spring Boot | Install Guide |
| Docker | Install Guide |
| Kubernetes | Install Guide |
| AWS Elastic Beanstalk | Install Guide |
| Azure Web App | Install Guide |
| Other Servers | Install Guide |
| Overview | APM Insight Java Agent |
| Installation | Install Java Agent |
| Configuration | Java Agent Configuration Options |
| Upgrade/Downgrade | Upgrade Java Agent |
| Supported Servers | Application Servers Supported |
| Supported JVMs | JVM / JDK Supported |
| Multiple Apps (Single Server) | KB: Monitor Multiple Applications |
| Server-Specific Issues | KB: APM Insight Java Agent – Server-Specific Issues (JBoss, WebLogic, Spring Boot, etc.) |
| Migration Steps | KB: Migration Steps |
| Troubleshooting Portal | KB: Troubleshooting Tips |
If all steps above have been checked and the issue persists, gather the following from the customer and escalate:
catalina.out, server.log, or equivalenths_err_pid*.logjava -version output)Contact: appmanager-support@manageengine.com (existing customers) or eval-itom@manageengine.com (trial users) with the above details.