System and methods for monitoring application server...

Electrical computers and digital processing systems: multicomput – Computer network managing – Computer network monitoring

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S130000, C717S124000, C714S035000

Reexamination Certificate

active

06792460

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to software tools and services for testing and monitoring the operation of web-based and other server systems.
2. Description of the Related Art
A variety of commercially-available systems exist for allowing companies to monitor the post-deployment performance of their web sites and other server systems. For example, Mercury Interactive Corporation, the assignee of the present application, operates a hosted service that allows customers to monitor their respective web sites as seen by end users in various geographic locations. Web site and server monitoring systems are also available as products that may be installed and operated “in house.” Various tools and services also exist for allowing web site operators to load-test and functionality-test their applications and server systems prior to deployment.
One problem with existing monitoring systems is that the web site performance data they collect and report typically fails to reveal the specific application components that are the sources of slow response times seen by end users. Without such information, web site operators and developers may have to resort to tedious experimentation to identify the root causes of application-related performance problems. The present invention addresses this problem.
SUMMARY OF THE INVENTION
The present invention provides a monitoring system that monitors the amount of time spent by specific application components, such as Java components, during execution of specific transactions on a web site or other server system. A probe that runs on an application server initially instruments these application components (preferably at component load time) to add code for tracking execution start and stop times. When a monitored transaction is executed by the application server, the probe measures the execution times of the invoked components—preferably at the component method level. The resulting measurement data is reported to a reports server, and is preferably used to provide transaction-specific breakdowns of the amount of time spent by each instrumented component, and optionally each instrumented method within such components.
For example, a breakdown report may indicate the amount of time spent by each servlet, Java Server Page, entity EJB (Enterprise JavaBean), and session EJB invoked by a particular transaction, such as a “login” or “place order” transaction. This data may in turn be used by an operator to determine which components or component types are the sources of application performance problems. The breakdown data may optionally be presented in conjunction with associated transaction response times (as measured, e.g., by client-side agent computers), so that an operator can assess the impact each application component has on response times seen by end users. A report may also be provided that further breaks down the component-level execution times by method, so that developers can identify the specific methods that are the sources of performance problems.
In one embodiment, the probe only monitors transactions initiated by agent-generated transaction request messages that are marked or “colored” for monitoring. Transactions initiated by actual users are thus ignored, as may be desirable to avoid unduly limiting the performance of the application server. In another embodiment, the probe additionally or alternatively monitors transactions initiated by real users, such as all requests for specific URLs (Uniform Resource Locators).
To instrument Java application components in one embodiment, a patch is initially added to the class loader component of a Java virtual machine installed on the application server. This patch causes the class loader component to pass Java components to an instrumentation component at load time. The Java virtual machine may alternatively be configured, via an associated API (Application Program Interface), to pass the Java components to the instrumentation component. In either case, the instrumentation component preferably determines whether each such application component is to be instrumented for monitoring based on configuration data pre-specified by a user. This configuration data may also specify that only certain methods of a given application component are to be instrumented/monitored. A user of the monitoring system can thereby exclude from monitoring those components and methods that are not believed to be sources of performance problems. The instrumentation component may alternatively be designed to instrument all application components, and/or all method of those components selected for instrumentation.


REFERENCES:
patent: 5303166 (1994-04-01), Amalfitano et al.
patent: 5781449 (1998-07-01), Rosborough
patent: 5918004 (1999-06-01), Anderson et al.
patent: 6006260 (1999-12-01), Barrick, Jr. et al.
patent: 6108700 (2000-08-01), Maccabee et al.
patent: 6157618 (2000-12-01), Boss et al.
patent: 6202199 (2001-03-01), Wygodny et al.
patent: 6205413 (2001-03-01), Bisdikian et al.
patent: 6216237 (2001-04-01), Klemm et al.
patent: 6362836 (2002-03-01), Shaw et al.
patent: 6411998 (2002-06-01), Bryant et al.
patent: 6446028 (2002-09-01), Wang
patent: 6449739 (2002-09-01), Landan
patent: 6457142 (2002-09-01), Klemm et al.
patent: 6584501 (2003-06-01), Cartsonis et al.
patent: 6654949 (2003-11-01), Fraenkel et al.
patent: 6658471 (2003-12-01), Berry et al.
patent: 6658654 (2003-12-01), Berry et al.
patent: 2002/0062369 (2002-05-01), Von Klopp et al.
patent: 2002/0065911 (2002-05-01), Von Klopp et al.
patent: 2002/0170036 (2002-11-01), Cobb et al.
patent: 2002/0198985 (2002-12-01), Fraenkel et al.
patent: 2003/0061265 (2003-03-01), Maso et al.
patent: 2003/0065986 (2003-04-01), Fraenkel et al.
patent: 2003/0229554 (2003-12-01), Veres et al.
patent: 2004/0015936 (2004-01-01), Susarla et al.
Bryan M. Cantrill et al.; ThreadMon: A Tool for Monitoring Multithreaded Program Performance; Proceedings of the Thirtieth Hawaii Internation Conference on System Sciences, 1997; pp. 253-265; Jan. 1997.*
Kevin S. Templer et al.; A Configurable Automatic Instrumentation Tool for ANSI C; 13th IEEE International Conference on Automated Software Engineering, 1998; pp. 249-258; Oct. 1998.*
Jong-Deok Choi et al.; A Perturbation-Free Replay Platform for Cross-Optimized Multithreaded Applications; 15th International Parallel and Distributed Processing Symposium; Apr. 2001.*
Thirty-eight page Document titled “Java Virtual Machine Profiler Interface (JVMPI),” downloaded from http://java.sun.com/products/jdk/1.2/docs/guide/jvmpi/jvmpi.html; having a “last modified” date as Feb. 3, 2000.
V. Mainkar, “Availability Analysis of Transaction Processing Systems based on User-Perceived Performance” IEEE Computer, pp. 10-17 (1997).

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

System and methods for monitoring application server... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and methods for monitoring application server..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and methods for monitoring application server... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3212011

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.