Application failure diagnosis
First Claim
1. A method for diagnosing application failures, said method comprising:
- initiating execution of an application which utilizes a plurality of components;
in response to detecting said execution;
generating a list of components utilized by said application, said list including version information corresponding to each component of said components, wherein said components are software components including one or more of library, a class, a driver or any other software component;
computing first signatures for each of one or more of said components using a signature generating algorithm, wherein said algorithm computes a unique signature for a given component based on a contents of the given component;
generating association data which associates said components with said application; and
storing said list, said signatures, and said association data in a database;
re-executing said application;
computing second signatures for each of one or more components of the re-executed application using said algorithm;
updating said database to reflect changes to one or more of said components used by the application; and
investigating a change in behavior of the application, wherein said investigating comprises;
querying said database; and
identifying component changes since a previous run of the application, wherein changes to one or more of said components are detected by determining a first signature of a corresponding component does not match a second signature of a corresponding component.
9 Assignments
0 Petitions
Accused Products
Abstract
A method and mechanism for diagnosing application failures. An executable application is augmented with code which generates a list of components, as well as version information, utilized by the application. Also created is data which associates application components with applications which utilize those components. The list of components, version information, and association data are stored in a database and updated each time the application is run. In response to detecting a failure of the application, a database query is generated which returns a list of components utilized by the failed application. By comparing the date that application components changed to the date the application was last successfully run, a high priority list of components which changed since the last successful run may be generated. Diagnosis of the application failure may then begin with components in the high priority list.
-
Citations
22 Claims
-
1. A method for diagnosing application failures, said method comprising:
-
initiating execution of an application which utilizes a plurality of components;
in response to detecting said execution;generating a list of components utilized by said application, said list including version information corresponding to each component of said components, wherein said components are software components including one or more of library, a class, a driver or any other software component; computing first signatures for each of one or more of said components using a signature generating algorithm, wherein said algorithm computes a unique signature for a given component based on a contents of the given component; generating association data which associates said components with said application; and storing said list, said signatures, and said association data in a database;
re-executing said application;computing second signatures for each of one or more components of the re-executed application using said algorithm; updating said database to reflect changes to one or more of said components used by the application; and investigating a change in behavior of the application, wherein said investigating comprises; querying said database; and identifying component changes since a previous run of the application, wherein changes to one or more of said components are detected by determining a first signature of a corresponding component does not match a second signature of a corresponding component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computing system comprising:
-
a database configured to store data; a first computer comprising an executable application, said application being augmented with new code, wherein in response to detecting execution of said application, the application is configured to; generate a list of components utilized by the application, said list including version information corresponding to each component of said components;
wherein said components are software components including one or more of library, a class, a driver or any other software component;compute first signatures for each of one or more of said components using a signature generating algorithm, wherein said algorithm computes a unique signature for a given component based on a contents of the given component; and generate association data which associates said components with said application; and a second computer configured to; in response to detecting execution of said application, store said list, said signatures, and said association data in the database; in response to detecting re-execution of said application, compute second signatures for each of one or more components of the re-executed application using said algorithm, and update said database to reflect changes to one or more of said components used by the application; support investigation of a change in behavior of the application, wherein said investigation comprises; querying said database; and identifying component changes since a last successful run of the application, wherein changes to one or more of said components are detected by determining a first signature of a corresponding component does not match a second signature of a corresponding component. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A computer readable storage medium comprising program instructions executable to:
-
detect execution of an application which utilizes a plurality of components; generate a list of components utilized by said application, said list including version information corresponding to each component of said components, wherein said components are software components including one or more of library, a class, a driver or any other software component; compute first signatures for each of one or more of said components using a signature generating algorithm, wherein said algorithm computes a unique signature for a given component based on a contents of the given component; generate association data which associates said components with said application;
store said list, said signatures, and said association data in a database;
detect re-execution of said application;
compute second signatures for each of one or more components of the re-executed application using said algorithm;update said database to reflect changes to one or more of said components used by the application; investigate a change in behavior of the application, wherein investigating said change comprises; querying said database; and identifying component changes since a last successful run of the application, wherein changes to one or more of said components are detected by determining a first signature of a corresponding component does not match a second signature of a corresponding component. - View Dependent Claims (17, 18, 19, 20, 21, 22)
-
Specification