Monitoring and Diagnosing Production Applications Using Oracle Application Diagnostics for Java An Oracle White Paper December 2007
Monitoring and Diagnosing Production Applications Using Oracle Application Diagnostics for Java Monitoring tools that only alert administrators when the application problems occur are not sufficient. Administrators need to have enough details to be able to identify the root cause of the problems in production environment without impacting the businesses. Oracle Enterprise Manager 10g Application Diagnostics for Java (Oracle s Java Diagnostics) is a lightweight Java application monitoring and diagnostics solution that provides production diagnostics to diagnose performance problems in production environment. It reduces the time to resolve production problems drastically and improves the application availability and performance. PRODUCTION APPLICATION DIAGNOSTICS CHALLENGES Critical Java applications suffer from availability and performance problems often when business is at its peak. IT administrators spend lot of time diagnosing the root cause of these problems. They normally do not have enough Application knowledge and must depend on application architects, and developers, to diagnose the problem. All the involved teams cannot use the diagnostic tools in production due to the high overhead they impose, and they must try to reproduce the problems in test or development environment. Many times, the problems are either not reproducible or it takes too long reproduce the problem. The impact on the business is severe, especially when the business is at its peak. Many Java diagnostics tools in the market are based on Byte Code instrumentation (BCI) technique that requires application instrumentation. It requires in-depth understanding of the application to know which Java components to instrument. In addition to the application knowledge, it also requires specialized skills to use the tools to instrument the application. BCI based tools have high configuration overhead and also add significant performance overhead. They also do not provide visibility for transactions across the Java and DB tiers. All these reasons make the BCI based tools unsuitable for diagnosing application problems in production environment. Monitoring tools that only alert administrators when the application problems occur are not just sufficient. Administrators need to have enough details to be able to identify the root cause of the problems in production environment without impacting the businesses. Administrators need a lightweight production monitoring tools that can give enough details when the problems occur. ORACLE APPLICATION DIAGNOSTICS FOR JAVA (JAVA DIAGNOSTICS) Oracle Enterprise Manager 10g Application Diagnostics for Java (Oracle s Java Diagnostics) is a lightweight Java application monitoring and diagnostics solution that enables administrators to diagnose performance problems in production. It White Paper Title Page 2
reduces the time to resolve performance problems drastically and improves the application availability and performance. Using Oracle s Java diagnostics administrators will be able identify the root cause of the performance problems in production environment without having to reproduce them in test or development environment. It does not require complex instrumentation of the Application or restarting the application to get in-depth application details. Application administrators will be able to identify deep down Java problems or Database issues that are causing application downtime without any application knowledge. Low overhead Java Activity Monitoring and Diagnostics Oracle s Java diagnostics provide in-depth Java activity monitoring with very low overhead without slowing down the application. Oracle s Java Diagnostics provides Java application resource consumption such as the requests waiting on I/O, network, and locks, requests that are burning lot of CPU cycles and the requests waiting on database calls immediately after the deployment. Along with the bottleneck resources it also provides the end-user requests that are impacted by the bottleneck resources and the application components that are causing the performance bottlenecks. Real-time Transaction Tracing If a particular request is slow or hanging or if the entire application is slow, administrators can run the real-time transaction trace to view current Java application activity. Administrators can look at the offending threads and their execution stack. They can perform analysis such as how much time a thread spent in waiting for DB wait or wait on a lock. Complex problems such as activity in one thread (or request) affecting the activity in the other thread or rest of the JVM can be found very quickly. Cross-tier correlation with Database If a performance problem is between Java and Database, it requires efforts from multiple teams. It is not easy to narrow down the problem to a particular tier and component within the tier. Resulting in high turn around time to problem resolution. Cross-tier correlation of individual Java requests with associated database activity shows the database states such as database locks or full table scans and the SQL statements that are causing the Java application problems. White Paper Title Page 3
Oracle Java Diagnostics for DBAs Database Administrators are often challenged with the issues that are caused by the applications running in the middleware. Database administrators who are solely responsible for Database performance can start diagnosing the problems from Database point of view. They can view the database sessions that are suffering from performance problems and identify the Java threads that are using the database sessions. They pinpoint to the application request and the Java method that is impacted by the Database issue. Memory Leak Detection and Analysis Memory leaks are often one of the reasons to slowdown application and lead to application crash. These problems are difficult reproduce in test environments and almost impossible to diagnose in production environments without impacting the application availability. Oracle s Java diagnostics alert administrators on abnormalities in Java memory consumption. Administrators can use Oracle s Java diagnostics console and take heap dumps in production applications without disturbing the application. They can take multiple heap dumps over a period of time, analyze the differences between the heap dumps and identify the object causing the memory leak. White Paper Title Page 4
Heterogeneous Platforms Oracle Java Diagnostics supports Oracle, Non-Oracle Application Servers and JVMs from multiple vendors. It also supports standalone Java applications. Oracle Application Diagnostics for Java is a lightweight production Java application monitoring and diagnostics solution. It reduces the time to resolve performance problems and improves the availability and performance of critical business applications. CONCLUSION Oracle Application Diagnostics for Java is a lightweight production Java application monitoring and diagnostics solution. It reduces the time to resolve performance problems and improves the availability and performance of critical business applications with the help of the following features: In-depth visibility of Java activity Real-time transaction tracing Cross-tier correlation with Database Memory leak detection and analysis White Paper Title Page 5
White Paper Title December 2007 Author: Rajagopal Marripalli Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com Copyright 2006, Oracle. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.