IP Library Granted Patent US 7,822,844
Granted Patent B2
US 7,822,844 · App. 10/792,150 · Granted Oct 26, 2010

System and methods for monitoring application server performance

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,822,844
App. No.
10/792,150
Granted
Oct 26, 2010
Kind
B2
Abstract

A monitoring system monitors the amount of time spent by specific application components, such as Java components, during execution of specific web site transactions. A probe that runs on an application server initially instruments these 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 used to provide transaction-specific breakdowns of the amount of time spent by each instrumented component, and optionally each instrumented method within such components. In one embodiment, the probe only monitors transactions initiated by agent-generated transaction request messages that are marked or “colored” for monitoring, and thus ignores transactions initiated by actual users.

Claims (38)

1. A method, executing on hardware, of instrumenting Java components installed on an application server in order to enable the Java components to be monitored, the method comprising:

adding a patch to a class loader class of a Java virtual machine installed on the application server, wherein the patch causes the class loader class to pass Java components to an instrumentation component when said Java components are loaded by the Java virtual machine;

receiving, from a patched version of said class loader class, code of a Java component to be loaded by the Java virtual machine; and

with the instrumentation component, instrumenting said code of the Java component to add functionality for tracking execution times;

wherein instrumenting said code comprises adding functionality for detecting when the Java component is invoked by a colored transaction request, the colored transaction request denoting that the colored transaction request is generated by an agent rather than generated by a real user so overhead associated with tracking the execution times is not incurred with respect to transactions generated by real users.

2. The method of claim 1 , wherein instrumenting said code comprises adding calls to each of a plurality of methods of the Java component, to thereby provide functionality for monitoring execution times of said methods.

3. The method of claim 1 , wherein instrumenting said code comprises adding functionality for reporting transaction identifiers of transactions that invoke the Java component, to thereby allow said execution times to be associated with transactions to which they correspond.

4. The method of claim 1 , further comprising:

generating a breakdown report including at least one of the group consisting of:

the average amount of time that a transaction was processed by servlets.

5. The method of claim 1 , further comprising:

generating a breakdown report including the average amount of time that the transaction was processed by session enterprise java beans (EJBs).

6. The method of claim 1 , further comprising:

generating a breakdown report including the average amount of time that the transaction was processed by Entity EJBs.

7. The method of claim 1 , further comprising:

generating a breakdown report including the average amount of time that passes from the moment the application server sends an Sal query to a database server until the database server returns a response to the application server.

8. The method of claim 1 , further comprising:

generating a breakdown report including the average amount of time that passes from the moment the application server receives a transaction request until the request is allocated a thread.

9. The method of claim 1 , further comprising:

generating a breakdown report including the average amount of time that passes from the moment the transaction request is allocated a thread until the request is handed off to a servlet.

10. The method of claim 1 , further comprising:

providing a filter option to allow a user to limit a view of a breakdown report of data reported by a specific instrumentation component.

11. The method of claim 1 , further comprising:

providing a filter option to allow a user to view a breakdown report of time spent by specific methods used in a transaction.

12. The method of claim 1 , further comprising:

monitoring the amount of time a transaction takes to complete.

13. The method of claim 1 , further comprising:

monitoring server response times.

14. The method of claim 1 , further comprising:

monitoring load times for specific page components.

15. The method of claim 1 , further comprising:

implementing a plurality of agents in different user locations to monitor response times and other performance parameters as seen by end users of a web site in such locations.

16. The method of claim 1 , further comprising:

implementing a plurality of agents to monitor a web site and report respective performance parameter measurements for storage in a central database; and

allowing the measurements to be accessed and viewed in aggregate form and detailed form via interactive reports.

17. The method of claim 1 , further comprising:

tracking execution of a particular transaction through application components invoked by the transaction; and

allowing the measurements to be accessed and viewed in aggregate form and detailed form via interactive reports.

Assignments (9)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
CHANGE OF NAME Recorded Aug 8, 2019
From: ENTIT SOFTWARE LLC
To: MICRO FOCUS LLC
Reel/Frame 050004/0001 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2007
From: MERCURY INTERACTIVE, LLC
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 019466/0029 →
CHANGE OF NAME Recorded Jun 18, 2007
From: MERCURY INTERACTIVE CORPORATION
To: MERCURY INTERACTIVE, LLC
Reel/Frame 019440/0564 →