JConsole (simple)
Running jmx enabled java process can be debugged with JConsole which is part of the JDK. JConsole provides simple memory and thread profiling.
Connect to a remote JVM with the command
Example connect to the TEST7 HarvestJobManagerApplication on kb-test-adm-001.kb.dk with the following parameters:
Process: service:jmx:rmi:///jndi/rmi://kb-test-adm-001.kb.dk:8144/jmxrmi Username: monitorRole Password: test
Eclipse TPTP (advanced)
TPTP is at advanced profiling tool for Eclipse
Install the TPTP Eclipse plugin though the normal Help -> Install New Software.... The plugin is part of the default Eclipse update site
Install the TPTP Agent controller on the machine with the process, which needs to be profiled. You might need to change the default ports used 10002, 10003, 10005 and 10006, these are defined in config/serviceconfig.xml. Start the Agent Controller.
Start the application with the following code snippet added to the java command
'-agentlib:JPIBootLoader=JPIAgent:server=controlled;HeapProf:allocsites=true'
eg. the last line ine the start_HarvestJobManager becomes
java \-Xmx1536m '-agentlib:JPIBootLoader=JPIAgent:server=controlled;HeapProf:allocsites=true' \-Ddk.netarkivet.......
Define a profiling configuration under Run -> Profile configurations.
- Create new configuration under Attach to Agent. Name the configuration <Server> profiling.
- Click Add