Monday, November 11, 2013

Weblogic diagnostic with Jrockit flightrecording





Oracle JRockit that is available in the WebLogic Server installation program includes a component called JRockit Flight Recorder (JFR), a performance monitoring and profiling tool. JFR records diagnostic information on a continuous basis, making it always available, even in the wake of catastrophic failure such as a system crash.
JFR maintains a buffer of diagnostics and profiling data, called a flight recording or a JFR file, that you can access whenever you need it. The flight recording functions in a manner similar to an aircraft "black box" in which new data is continuously added and older data is stripped out
JFR provides the following key benefits:
  • Designed to run continuously — When JFR is configured to run full-time, with both JVM and WLDF events captured in the flight recording, diagnostic data is always available at the time an event occurs, including a system crash. This ensures that a record of diagnostic data leading up to the event is available, allowing you to diagnose the event without having to recreate it.
  • Comprehensive data — JFR combines data generated by the JRockit Runtime Analyzer and the JRockit Latency Analysis Tool and presents it in one place.
  • Integration with event providers — JRockit includes a set of APIs that allow the JFR to monitor additional system components, including WebLogic Server, Oracle Dynamic Monitoring System
·        Real-time Application Diagnostics and Reporting (RADAR)
RADAR is the examination of diagnostic data generated during run time when a particular event occurs for the purposes of understanding the system activity that preceded the event; for example, system activity occurring moments before a serious error message is generated. By using the diagnostic capabilities available in WLDF in conjunction with JRockit Flight Recorder, you can capture a large amount of system-wide diagnostic data the moment a problem occurs. You can then leverage the capabilities of JRockit Mission Control to quickly correlate that event with other system activity and process execution data within the "snapshot in time" that the JFR file provides, enabling you to quickly isolate likely causes of the problem.
One WLDF feature whose usage with JRockit Flight Recorder makes for a powerful RADAR capability is image notification, which allows you to create a diagnostic image capture automatically in response to a particular event or error condition. A diagnostic image capture, which created as the result of an image notification, automatically includes the JFR file. The JFR file can then be extracted from the diagnostic image capture and examined immediately in JRockit Mission Control or stored for later analysis. Image notification, used when WLDF data is captured by JRockit Flight Recorder, is particularly well suited for this sort of real-time diagnosis of intermittent problems.


How to start, check and stop jfr:


--> /usr/java/jrockit-28.2.5/bin/jrcmd 3143 start_flightrecording settings=default settings=memory settings=sample compress=true filename=/project /test.jfr

 3143---- is pid of java process, which relates to any managed server of weblogic

Filename: path of jfr file


-->  /usr/java/jrockit-28.2.5/bin/jrcmd 3143 check_flightrecording

output looks like:

Recording : id=1  name="WLDFDiagnosticImageRecording" duration=0s dest="/project/test.jfr" compress=false (running)

This is for checking the JFR is started or not for that particular PID(here pid is 3143) 
 
--> /usr/java/jrockit-28.2.5/bin/jrcmd 3143 stop_flightrecording id=X
afer completion of recording , we need to stop JFR , here we need to give id value  (for above example we need to give as 1)

we need to give like this:

/usr/java/jrockit-28.2.5/bin/jrcmd 3143 stop_flightrecording id=1