DEADLY EMBRACE
Systems and methods are disclosed that gather database event information that may be used by a debugger to pinpoint problems in applications that lead to inefficiencies in the database. For example, a database system may gather application-specific information from an application execution stack to include in the event log file. The application-specific information provides details as to what portion of the application resulted in the database event. The database event information may then be provided to another application or a user via a user interface.
1 . A method of providing database event information, the method comprising:
identifying a database event occurring in a database, the event occurring during execution of one or more applications utilizing the database;
gathering event information associated with each of the one or more applications; and
storing the database event information in a database event file.
2 . The method of claim 1 , wherein the database event is a deadlock event occurring among the one or more applications.
3 . The method of claim 1 , further comprising:
receiving a subscription request, wherein the subscription request identifies the database event; and
in response to receiving the subscription request, providing event information.
4 . The method of claim 3 , wherein gathering the event information comprises receiving the event information from an operating system.
5 . The method of claim 4 , wherein the event information is collected by an operating system executing on a computing system hosting the database and includes stack information associated with the one or more applications.
6 . The method of claim 3 , wherein providing the event information comprises displaying the event information in a user interface.
7 . The method of claim 1 , wherein the event information comprises a mix number, an application name, and a line number.
8 . The method of claim 1 , wherein the database event file comprises at least one XML stream.
9 . The method of claim 1 , further comprising, in response to identifying the database event, responding to the database event.
10 . The method of claim 9 , wherein the database event is a deadlock event occurring among the one or more applications, and wherein responding to the database event corresponds to terminating a lowest-priority application from among the one or more applications.
11 . A computer storage medium comprising computer-executable instructions, which when executed on a computing device perform a method of providing database event information, the method comprising:
identifying a database event occurring in a database, the event occurring during execution of one or more applications utilizing the database;
in response to identifying the database event, responding to the database event;
receiving a subscription request, wherein the subscription request identifies the database event;
gathering event information; and
in response to receiving the subscription request, providing event information.
12 . The computer storage medium of claim 11 , wherein the database event is a deadlock event.
13 . The computer storage medium of claim 12 , wherein responding to the database event comprises terminating a first application that is a part of the deadlock event, wherein the first application has a lowest priority.
14 . The computer storage medium of claim 11 , wherein providing the event information comprises displaying the event information in a user interface.
15 . The computer storage medium of claim 14 , wherein displaying the event information comprises displaying a mix number, an application name, and a line number of the application.
16 . The computer storage medium of claim 11 , wherein gathering the event information comprises receiving stack information from an operating system, wherein the stack information is related to the database event.
17 . A system for providing event information, the system comprising:
a database including a utility configured to provide deadlock event information, wherein the utility is configured to:
identify the deadlock event;
receive a subscription request, wherein the subscription request identifies the deadlock event;
gather deadlock event information from an operating system, wherein gathering deadlock event information comprises receiving stack information from the operating system; and
in response to receiving the subscription request, provide event information; and
the operating system communicating with the database for providing deadlock event information, wherein the operating system is configured to:
maintain stack information for one or more applications utilizing the database, wherein the stack information is stored in format compatible with the database; and
provide the stack information of the one or more applications to the database.
18 . The system of claim 17 , wherein the stack information comprises a mix number, an application name, and a line number.
19 . The system of claim 17 , wherein the stack information is stored in an XML format.
20 . The system of claim 17 , wherein the operating system maintains an entire stack history for the one or more applications utilizing the database.