Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

J2EE Health Check Sample by usr10478


									( A P P L I C AT I O N C O N F I D E N C E )

                                                      It’s like sharpening your edge in the second turn.

                          J2EE Health Check Sample

PRODUCTIVIT Y                           PERFORMANCE               24 / 7 AVA I L A B I L I T Y   LO W E R TCO
                                                 J2EE Health Check Report
                                                        Table of Contents

Table of Contents
Section One: Executive Summary

Section Two: Detailed Findings

   •   Transactional Analysis
   •   Verify Sign In Transaction: Detailed Analysis
   •   Metrics Analysis
   •   Application Server Execute Queue Status
   •   Stateful EJB Pool Analysis: Passivation
   •   Quest’s Solutions for J2EE Application Performance Management

Section Three: About Quest Software
                                                    J2EE Health Check Report
                                                         Executive Summary

[Your Company]
J2EE Health Check Report
By Quest Software, Inc.

Quest Software recently performed a Healthcheck on your J2EE application. The purpose of
the Healthcheck is two-fold: to give a complementary assessment of the areas where your
application may be improved, and to introduce your company to our solutions and how they
can provide your company with great visibility into the J2EE system that can be leveraged
against your critical business applications on an on-going basis.

As part of the Healthcheck our expert consultant helped your team deploy Quest Software’s
PerformaSure, one of the components of our J2EE suite of application management
software. Using our solution, our experts were able to immediately assess the configuration
and performance of your system. This report includes transactional analysis to help
understand and report on the end-user experience, as well as a configuration analysis to
assist you in determining resource contention problems that could effect performance and
availability of your applications. Based on the data that your team collected with the help of
our consultant, we are able to offer expert analysis and recommendations for maximizing
the performance and availability of your J2EE system.

Implementing the changes outlined below will noticeably increase the performance and
scalability of your application, improving the user experience:

Application Load Balancing Analysis:

Business Impact: High
Ease of Solution: Easy
Description: Your application is displaying signs of a serious cluster imbalance. This
greatly compromises your systems ability to handle the maximum number of users you
expect during peak loads.

Your Weblogic administrator is currently examining the machines effected in order to find
the cheapest and best solution. Specific information follows in the report below.

Verify Sign In Transactional Analysis:

Business Impact: High
Ease of Solution: Easy
Description: Your application’s Verify Sign In transaction, which checks users’ profiles
against stored records, is very slow to respond with an average user response time of
almost 5 seconds. This exceeds internal performance SLAs by more than 3 seconds and has
resulted in more than 10 site abandonments per hour.

Specific diagnostic information follows in the report below.

[Your Company]                                                                               1
                                                     J2EE Health Check Report
                                                          Executive Summary

Incoming User Scalability Analysis:

Business Impact: N/A: Performing Well
Ease of Solution: None Required
Description: Your application server is well tuned to handle the user loads you expect to
encounter with this application with enough execution threads in Weblogic for all users
during peak load. Therefore, the scalability of this service should be good once you solve
the cluster imbalance mentioned in the first point of this summary. However, your systems
administrators should continue to monitor this in production as user load can increase
quickly and without warning.

More detailed information follows in the report below.

User Processing Performance Analysis:

Business Impact: Medium - High
Ease of Solution: Very Easy
Description: There are not currently enough resources to handle your users demands at
the EJB level. This could result in users experiencing very long wait times during the
purchasing of your product or service. Because this problem is related to the load on your
system, once triggered it will quickly spiral out of control and could result in your application
becoming unavailable.

This problem is easily solved by a combination of added resources and more efficient
resource allocation. Specific recommendations for the solution follow in the report below.

[Your Company]                                                                                  2
                                                   J2EE Health Check Report
                                                           Detailed Findings

Detailed Findings

The information gathered by our full J2EE application management solution is valuable to all
levels of the IT hierarchy, and includes reports for the IT Manager as well as diagnostics and
tuning recommendations for the application administrator and the database administrator.
This report concentrates on only the J2EE power diagnostic aspect of that suite, but after
viewing this report and seeing the quality of data and analysis provided, we’re confident
you’ll want to find out more about how our solution can help in the monitoring,
management and diagnosis of critical J2EE, packaged applications and database systems.

When diagnosing a J2EE system, there are typically two types of problems that are seen:
transactional issues revolving around mistakes in application code and configuration
problems in the environment. In the J2EE Healthcheck report that follows we have divided
our detailed findings into two sections: Transactional Analysis, and Configuration Analysis.

[Your Company]                                                                                 3
                                                         J2EE Health Check Report
                                                                 Detailed Findings

Transactional Analysis

Transactional Overview

Typically a transactional problem is manifested in poor response time. This may be
detected by your monitoring software, like Quest’s Foglight, or by end-users reporting slow
transactions. In either case it is important that the investigator is able to find the root-
cause of the problem quickly as poor end-user response time can have a severe impact on
the business: users may abandon an e-commerce site for a competitor’s; your business’
ability to execute may be compromised by stale data; your partners may be unable to fulfill
an order on-time; a series of transactions may have to be rolled back, inconveniencing
users or causing costly batch re-runs.

Avoiding costly issues like those outlined above begins with setting Service Level
Agreements or performance targets for your application. For the purposes of this
Healthcheck our consultant worked with your application teams to determine what
constituted an excessively slow transaction according to the unique demands of your

The chart below shows your top three slowest transactions in the Java application.

[Your Company]                                                                                 4
                                                  J2EE Health Check Report
                                                          Detailed Findings

            Chart 1: Quest PerformaSure’s Request Time View (Tier Breakdown)

As you can see the Verify Sign In transaction was the slowest running with an average
response time of 4.8 seconds. Of that time the majority of time was spent in the Weblogic
Application Server tier which contributed 73% to the total time users spent in this

By looking at the data broken down by individual machine rather than tier, we can see that
your application is also suffering from a severe load balancing problem (see chart below).

[Your Company]                                                                               5
                                                 J2EE Health Check Report
                                                         Detailed Findings

     Chart 2: Quest PerformaSure’s Request Time View (Physical Machine Breakdown)

You can see by the chart and table in the above screenshot that while the xx1 node
contributed only 9.4% to the total time, the xx2 node contributed nearly 45% of the total
time. After consulting with your systems group it was concluded that this was probably due
to a misconfigured software load balancer in Weblogic.

[Your Company]                                                                           6
                                                   J2EE Health Check Report
                                                           Detailed Findings

Verify SignIn Transaction Analysis

In conjunction with your team we continued our analysis of your application’s VerifySignIn
transaction. To find the root-cause of the performance bottleneck that was slowing this
request down, we used the PerformaSure Tree View.

        Chart 3: Quest PerformaSure’s Request Tree View (Execution Path Diagram)

The Request Tree View is unique to PerformaSure and allows you to visualize your
application’s architecture and your user’s path through the system without recompiling or
redeploying your application. Using this diagram you can quickly spot areas where your
application’s implementation may have strayed from the intended architecture. You can
also find bottlenecks quickly by their bright red coloring. By zooming into the red areas we
can identify those methods that are problematic:

[Your Company]                                                                                 7
                                                  J2EE Health Check Report
                                                          Detailed Findings

        Chart 4: Quest PerformaSure’s Request Tree View (Method-level Bottleneck)

In this case your primary bottleneck is in the following method:
ShoppingClientControllerEJB.getProfileMgr(). Knowing where the method-level bottleneck is
will make it easier for your developers to quickly fix that method and get the application
back up to speed.

PerformaSure also allows you to send a configuration file pre-focused on this problem to the
developer who is using Quest JProbe. Using JProbe’s industry-leading Profiler on their
desktop that developer can then get line-level performance and object allocation data,
allowing them to resolve the problem that much more quickly and easily.

[Your Company]                                                                             8
                                                   J2EE Health Check Report
                                                           Detailed Findings

Metrics Analysis

In addition to performing transactional analysis of your application, the J2EE Healthcheck
includes an examination of the configuration of your system. PerformaSure gathers data
from the various areas of the J2EE system: Operating System; Java Virtual Machine;
Application Server; Your Application’s Transactions. It is essential when analyzing a J2EE
system that you are able to quickly and easily correlate disparate metrics from across these
various tiers. Often a resource contention problem in one area will quickly cause a failure in
one or more other areas.

The following metrics are just a sample of those that, if checked frequently, can help
guarantee a more stable and higher performing J2EE site.

[Your Company]                                                                               9
                                                   J2EE Health Check Report
                                                           Detailed Findings

Application Server Execute Queue Status

Your Application Server manages multiple transactions executing within the container using
a pool of threads to process each request. Within the Application Server there is a pre-
defined number of threads that are available to process each request.

As requests come into the Application Server container, a thread is assigned to process it.
When the request is completed the thread becomes free and returns to the pool to become
available for another request. When there are plenty of threads available and the system is
not saturated, you will see a number of idle threads and the queue will be empty. When
there are more requests than the system can handle, you will see no idle threads and the
queue will show how many requests are waiting for an available thread. This waiting is
manifested as slow response time for your end-users. While this may be acceptable for
short periods of peak usage, you should ensure that it never exceeds a transient burst.

You can quickly judge the health of your Execute Queues by analyzing the number of Idle
Threads in your Application Server (Chart 5) and, most importantly, the Queue Length
(Chart 6). If your Execute Thread pool size is set optimally you should see no idle threads
during bursts of peak usage and while your queue length will rise, it should remain
manageable and drop to zero as soon as the peak burst is over.

        Chart 5: Quest PerformaSure’s Metrics View (Execute Queue: Idle Threads)

[Your Company]                                                                                10
                                                   J2EE Health Check Report
                                                           Detailed Findings

        Chart 6: Quest PerformaSure’s Metrics View (Execute Queue: Queue Length)

In this case, we can see that your application has experienced one quick burst of heavy
load. Your idle threads dip down to zero for a short period of time (this is what we want to
occur during these short bursts) and your execute queue rises, but drops quickly. It would
appear from this that your execute queue pool size is near-optimal.

[Your Company]                                                                             11
                                                   J2EE Health Check Report
                                                           Detailed Findings

Stateful EJB Pool Analysis: Passivation

One way to store state data in your Application Server is to use Stateful Session EJBs.
These EJBs hold a user’s state data while they are logged in to the application. Weblogic
keeps a pool of these beans to be given out to incoming users. As a user enters the
application and logs in they are given a Stateful Session bean from the pool. When they log
out the bean is cleared of its data and returned to the pool.

If a user does not manually log out of the application then their Stateful Session bean will
become inactive, but cannot be returned to the pool and used by another incoming user
until the Stateful Session bean timeout value is reached (by default this timeout is 30
minutes). If the pool of free beans is empty at any point and a new user enters the site the
Application Server uses a process called Passivation to ensure that they receive a Stateful
bean. When Passivation occurs, the oldest inactive bean currently in use has its data saved
to the physical hard drive. The bean is then cleared and returned it to the new, incoming
user. When that bean’s timeout completes, the saved data is deleted from the drive.

While Passivation ensures that incoming users will always receive a Stateful bean, it heavily
compromises performance by requiring your Application Server to go through several
additional steps in order to get a Stateful Session bean to a new user.

The first graph (Chart 7) represents the number of Passivations that are being seen for the
Shopping Client Controller Stateful Session EJB. The second graph (Chart 8) shows the
Response Time for the Category request type that uses the Stateful beans shown in the
graph above.

   Chart 7: Quest PerformaSure’s Metrics View (EJB Pooling: Stateful Bean Passivations)

[Your Company]                                                                             12
                                                   J2EE Health Check Report
                                                           Detailed Findings

      Chart 8: Quest PerformaSure’s Metrics View (Request Response Time: Category)

In this case we can see that the SCC Bean which is used in the Category use case is
experiencing a lot of passivation. This is causing progressively slower response time until it
becomes unacceptably high (10+ seconds average).

It would be advisable to follow one or both of the two options below:

   1) Increase the number of beans in the SCC bean pool. Before doing this, however,
      you should double-check that you have free memory in your JVM Heap. Raising the
      size of the bean pool will result in more latent objects in the Heap which can
      constrain the free memory. If your average JVM used Heap percent is over 70%
      then you should consider either increasing the maximum JVM Heap size (by passing
      a larger value for the –Xmx argument, providing there is enough physical memory)
      or implementing the second option outlined below.

   2) Decrease the inactive timeout for the Stateful Session Bean. Make sure, however,
      that your timeout is at least 3 times the longest expected request return time. For
      example, if the slowest request in your system takes 2 minutes to return then your
      minimum timeout period should be more than 6 minutes. In most cases you should
      start by lowering the timeout to 5-8 times the longest request return time and adjust
      from that starting point.

[Your Company]                                                                              13
                                                    J2EE Health Check Report
                                                            Detailed Findings

Quest Solutions for J2EE Application Performance Management

J2EE is today’s key business application platform, powering thousands of enterprise-level
applications in production. Unexpected downtime or slowdown of critical applications simply
isn’t an option. Neither is spending more on managing applications and infrastructure than
you have to.

J2EE applications are built on many layers of complex software infrastructure. Managing
J2EE application performance in production takes a diverse team of experts — application
support staff, DBAs and developers — working together. Silo-oriented point tools slow down
diagnosis because tools and experts can only tackle one aspect of the problem at a time and
cannot share diagnostic data in a common workflow.

Comprehensive Application Performance Management

An integrated J2EE application performance management solution, Quest’s Application
Performance Management Suite for the J2EE platform accelerates the detection, diagnosis
and resolution of business-threatening performance issues throughout the lifecycle. With
collaborative tools and diagnostic depth for every stage of the application lifecycle, Quest’s
APM Suite helps your entire IT team keep complex J2EE applications running smoothly and
fix live production problems quickly.

Foglight® for J2EE is a powerful application performance management console that provides
end-to-end monitoring of every component affecting application performance.

Spotlight® is a real-time performance viewer for diagnosing bottlenecks in J2EE application
server systems. Detailed information and problem-specific advice speed resolution of J2EE
problems in production.

PerformaSure™ is a transaction-centric deep diagnosis tool that helps companies to
diagnose and resolve performance problems in distributed J2EE applications in testing or
production. PerformaSure’s unique Tag and Follow technology traces and reconstructs the
execution path of end-user transactions, across the Web servers, application servers and
databases utilized to service the request.

JProbe® is an award-winning toolkit for diagnosing errors and inefficiencies in Java
application, servlet, JSP and EJB code. JProbe paints graphical pictures of everything from
memory use to calling relationships, helping developers to understand precisely what is
causing problems in Java code.

Keep Critical J2EE Applications Running 24/7

Quest‘s APM Suite provides the tools and workflow you need to keep applications running in
production and fix unexpected problems almost as soon as they occur — creating a highly
efficient proactively-managed system. When Foglight detects a slowdown or failure, it
automatically alerts application administrators and seamlessly triggers PerformaSure data
capture, allowing production staff to move rapidly into the diagnostics phase of the repair
cycle. PerformaSure’s “power diagnostics” GUI highlights performance hotspots and
provides intuitive diagnosis tools. Spotlight’s GUI console alerts application server
administrators to unexpected applicaton server system slowdowns. When the code’s at
fault, JProbe zooms in on the code to pinpoint the problem.

[Your Company]                                                                               14
                                                    J2EE Health Check Report
                                                            Detailed Findings

Diagnose Problems System-Wide to Line-of-Code

The sheer breadth and complexity of J2EE applications makes diagnostics particularly
difficult. Only Quest‘s APM Suite can track a problem from an end-user transaction in
production down to the offending line of source code. Diagnose inefficient servlets, slow-
running SQL statements, inefficient EJB/DB interaction, application server configuration,
excessive network traffic and more with PerformaSure. And drill down
with JProbe to analyze memory leaks, performance bottlenecks and threading problems
down to the offending line of source code.

Integrated to Speed Collaborative Performance Management

A diverse team of functional experts has varying diagnostic needs, and the Quest APM Suite
integrates diverse diagnostic tools to provide a streamlined workflow for diagnostic experts.
Application support staff can rapidly isolate problems in production and automatically gather
detailed diagnostics data from the live system for the right expert. Software developers,
architects and DBAs have the tools they need to identify slow components and determine
root cause among the varying application server, database, network and OS components.

Testing staff can benchmark and quickly validate fixes against a simulated load before
deployment. Integrated tools and objective data provide every member of the team what
they need to be successful.

Complete Lifecycle Coverage

The Quest APM Suite for the J2EE platform helps organizations proactively manage
performance across the application lifecycle, from early code optimization in development
through to ongoing application management in production. During development, JProbe
ensures that code is well-tuned and performing optimally before release to QA. In
integration testing and staging, Foglight and PerformaSure analyze system performance
under simulated load to ensure application reliability and scalability prior to deployment. In
production, Foglight and PerformaSure are critical to monitor and manage live performance
and rapidly identify slow end-user transactions; Spotlight provides real-time information on
activity and process flow within application server systems.

[Your Company]                                                                               15
                                          Application Performance Review
                                                    About Quest Software

Why Application Management?
Businesses today rely on enterprise applications for manufacturing, financials, supply chain
management, human resources, and customer relationship management—virtually every
vital function within a business. As the reliance on these applications continues to grow,
performance and availability become paramount. Simply put, your business is only as good
as your application infrastructure. At Quest Software, we understand this better than
anyone else—that is why we are 100% focused on making your application infrastructure

Quest for Application Confidence
Quest Software, the leader in application management, gives you confidence in your critical
application infrastructures. This confidence is delivered in the form of reliable software
products that help you develop, deploy, manage and maintain enterprise applications
without expensive downtime or business interruption. We equip IT professionals with
software tools that are easy to use and embedded with the knowledge of our world-
renowned technical experts to automate daily tasks and simplify complex ones. As a result,
your IT organization will be able to proactively prevent performance problems and
downtime, as well as react quickly to the unforeseen—making them more productive,
capable and confident. The bottom line is a lower total cost of ownership for your application

Quest Software will help you reduce costly planned and unplanned downtime, get better
performance from existing infrastructures (without throwing money at expensive hardware
upgrades), and equip your staff to do more with less. No other software provider offers a
more comprehensive approach to application management.
                                                   J2EE Health Check Report
                                                      About Quest Software

About Quest Software
Headquartered in Irvine, Calif., Quest Software is a leading provider of application
management solutions more than 18,000 global customers to back up its solutions.

For more information on our solutions for J2EE application performance management, call
800.663.4723 or visit us at

[Your Company]                                                                            16

To top