Professional Documents
Culture Documents
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracles products remains at the sole discretion of Oracle.
virtualized environments
Improve datacenter efficiency - do
production environments
No application modification or
Garbage Collector
Millisecond response times with
configuration required
management
Released Oracle WebLogic Suite
Virtualization Option
JROCKIT JVM
World-class performance Powerful diagnostics Full support from Oracle
Demo - Memleak
Leaking char[] We suspect there may be a problem with Leak $DemoObject
Demo - Memleak
(right-click) Add to Type Graph Expand backwards until the leak stops Hashtable$Entry looks problematic
Demo - Memleak
(right-click on relation from Hashtable$Entry -> DemoObject) List Referring Instances to see instances pointing to DemoObject Hashtable$Entry instances listed in Instances View
Demo - Memleak
(right-click) Expand to Root Shows DemoThread with field table referring to Hashtable contining the leaking DemoObject
New Data
Time
Data can include events from the JVM and from any other event producer
WebLogic Server (WLDF) Fusion Middleware (DMS)
Flight Recording
Old Data
Flight Recorder Diagnostic Commands You interact with Flight Recorder through Mission Control Or with the jrcmd diagnostic commands:
start_flightrecording stop_flightrecording check_flightrecording dump_flightrecording
start_flightrecording
jrcmd <pid> start_flightrecording
name settings defaultrecording delay duration filename compress maxage maxsize - Name of recording (string) - Settings file or preset (string) - Starts default recording (bool, false) - Delay recording start (time, 0s) - Duration of recording (time, 0s) - Resulting recording filename (string) - GZip-compress the resulting recording file (bool, false) - Maximum age of buffer data (time, 0s) - Maximum size of buffers in bytes (long, 0)
start_flightrecording (cont.)
For example, to start a recording connecting to a running JRockit JVM with pid 4711, with the settings named jrockit-se.jfs, and with the recording named Troubleshoot outputting to the file recording.jfr use: $> jrcmd 4711 start_flightrecording name=Troubleshoot settings=jrockit-se.jfs filename=recording.jfr
dump_flightrecording
Stores a snapshot of a running recording Jrcmd <pid> dump_flightrecording
name recording copy_to_file compress_copy - Recording name (string) - Recording id (long, -1) - Copy recording data to file (string) - GZip-compress "copy_to_file" destination (bool, false)
Example:
jrcmd 16749 dump_flightrecording recording=0 copy_to_file=cont.jfr
Will store a copy of recording with id=0 to a file named cont.jfr. Note: The recording ends up in the working directory of the JVM you attach to! (This is probably not the directory from where you run 'jrcmd'.)
stop_flightrecording
jrcmd <pid> stop_flightrecording
name recording discard copy_to_file compress_copy - Recording name (string) - Recording id (long, -1) - Discards the recording data (bool, false) - Copy recording data to file (string) - GZip-compress "copy_to_file" destination (bool, false)
Will stop the recording. Can save the stopped recording to a file.
EJB WebApp JDBC JTA WS Etc WLDF Instrumentation Configuration (Instrumented at Build Time) WLDF Instrumentation Engine
WLDF Monitors and Action Groups WLDF Flight Recorder Image Source
Instrumentation Extension WLDF Flight Recorder Actions
JRFR Producer API
Extension Actions
JRockit Flight Recorder Diagnostic Image File With Flight Recorder Data Diagnostic Image File Without Flight Recorder Data Extension supplied JRockit Supplied WLDF File/Artifact Available if JRockit is Used Extension Data
Working with JRockit Flight Recorder Start JRMC, connect to WLS Configure WLS Diagnostic Volume (admin console: server->configuration->general, High) Right mouse, select Dump Default Recording
Recommended Reading
Written by two senior members of JRockit Engineering team Highly Recommended
Chapter 1 - Getting started Chapter 2 - Adaptive Code Generation Chapter 3 - Adaptive Memory Management Chapter 4 - Threads and synchronization Chapter 5 - Benchmarking and tuning Chapter 6 - JRockit Mission Control Chapter 7 - The Management Console Chapter 8 - The Runtime Analyzer Chapter 9 - The Flight Recorder Chapter 10 - The Memory Leak Detector Chapter 11 - JRCMD Chapter 12 - Using the JRockit Management APIs Chapter 13 - JRockit Virtual Edition Appendix A - Bibliography Appendix B - Glossary
36