Smart error recovery for database applications

US9235464B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9235464-B2
Application numberUS-201213653318-A
CountryUS
Kind codeB2
Filing dateOct 16, 2012
Priority dateOct 16, 2012
Publication dateJan 12, 2016
Grant dateJan 12, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A database server includes logic that is operable to monitor and analyze at least events occurring within an environment of the database server and/or execution errors generated by the database server in order to detect whether a problem condition exists. The database server further includes logic that is operable to send one or more commands to a database driver of a client that is communicatively connected to the database server, the one or more commands specifying one or more actions to be taken by the database driver in response to the existence of the problem condition. The database driver includes logic that is operable to receive the one or more commands from the database server and logic that is operable to cause the one or more commands to be executed.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method, comprising: monitoring, by a database server implemented on a first computer, at least one of events occurring in an environment of the database server and execution errors generated by the database server; detecting, by the database server, a problem condition occurring at or in the environment of the database server based upon an analysis of at least one of the monitored events and the monitored execution errors; and in response to detecting the problem condition, sending by the database server one or more commands to a database driver of a client implemented on a second computer that is communicatively connected to the first computer via a network, the one or more commands being executable by the database driver to cause one or more actions that recover from the problem condition to be performed by the database driver in response to the problem condition. 2. The method of claim 1 , wherein sending the one or more commands to the database driver comprises: sending the one or more commands to the database driver within a context of a session established between the database server and the client as part of an application layer request/response protocol. 3. The method of claim 2 , wherein sending the one or more commands to the database driver within the context of the session established between the database server and the client as part of an application layer request/response protocol comprises: sending the one or more commands to the database driver within a context of a session established between the database server and the client as part of a Tabular Data Stream protocol. 4. The method of claim 2 , wherein sending the one or more commands to the database driver within the context of the session established between the database server and the client as part of an application layer request/response protocol comprises: generating a response to a request received from the database driver; adding the one or more commands to the response to generate a modified response; and transmitting the modified response to the database driver. 5. The method of claim 1 , wherein detecting the problem condition comprises detecting that a failover from the database server to an alternate database server is going to occur. 6. The method of claim 1 , wherein sending the one or more commands to the database driver comprises sending at least one command to the database driver that indicates: a time period during which the database driver is not to try to reconnect to the database server; how to react to certain classes of errors; that a connection is to be switched from the database server to an alternate database server; a rate at which database operations are to be transmitted to the database server; that the database driver is to be updated to a new version; that a client-side cache of server information is to be flushed; that a cached view of database server data or a portion thereof is to be refreshed; a new set of mappings for fan-out or partitioned query support; or that client connection strings or logical mappings between a logic name and a data source are to be managed or updated. 7. The method of claim 1 , wherein sending the one or more commands to the database driver comprises sending at least one command to the database driver that is configured to cause the database driver to collect troubleshooting information. 8. The method of claim 1 , wherein at least the sending step is performed by the database server. 9. The method of claim 1 , wherein at least the sending step is performed by a gateway that is communicatively connected between the first computer and the second computer. 10. A database server implemented on a first computer, comprising: one or more processors; a storage medium that stores program modules for execution by the one or more processors, the program modules comprising: an environment reader operable to identify events occurring in an environment of the database server; and a problem detection engine operable to detect a problem condition occurring at or in the environment database server based upon an analysis of one or more of events identified by the environment reader and execution errors generated by the database server, and to send one or more commands to a database driver of a client implemented on a second computer that is communicatively connected to the first computer via a network in response to detecting the problem condition, the one or more commands being executable by the database driver to cause one or more actions that recover from the problem detection to be performed by the database driver in response to the problem condition. 11. The database server of claim 10 , wherein the problem detection engine is operable to send the one or more commands to the database driver within a context of a session established between the database server and the client as part of an application layer request/response protocol. 12. The database server of claim 11 , wherein the problem detection engine is operable to send the one or more commands to the database driver within a context of a session established between the database server and the client as part of a Tabular Data Stream protocol. 13. The database server of claim 10 , wherein the problem detection engine is operable to generate a response to a request received from the database driver, to add the one or more commands to the response to generate a modified response, and to transmit the modified response to the database driver. 14. A system, comprising: one or more processors; a storage medium that stores program modules that are executed by the one or more processors, the program modules comprising: an application; and a database driver implemented on a first computer operable to perform database operations on behalf of the application, the database driver further including: a smart error reader operable to receive one or more executable commands from a database server implemented on a second computer that is communicatively coupled to the first computer via a network, the one or more commands, when executed, causing one or more actions that recover from a problem condition identified by a database server to be performed in response to the problem condition, the identified problem condition occurring at or in an environment of the database server; and a smart error processor operable to execute the one or more commands. 15. The system of claim 14 , wherein the smart error reader is operable to receive the one or more commands within a context of a session established between the database server and the client as part of an application layer request/response protocol. 16. The system of claim 15 , wherein the smart error reader is operable to receive the one or more commands within a context of a session established between the database server and the client as part of a Tabular Data Stream protocol. 17. The system of claim 15 , wherein the smart error reader is operable to extract the one or more commands from a response received from the database server within the context of the session. 18. The system of claim 14 , wherein the smart error processor executes the one or more commands by executing code received from the database server. 19. The system of claim 14 , wherein the smart error processor executes the one or more commands by causing troubleshooting information to be collected. 20. The system of claim 19 , wherein the smart error processor executes

Assignees

Inventors

Classifications

  • for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06) · CPC title

  • in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems · CPC title

  • Remedial or corrective actions (recovery from an exception in an instruction pipeline G06F9/3861; by retry G06F11/1402; for recovering from a failure of a protocol instance or entity H04L69/40) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9235464B2 cover?
A database server includes logic that is operable to monitor and analyze at least events occurring within an environment of the database server and/or execution errors generated by the database server in order to detect whether a problem condition exists. The database server further includes logic that is operable to send one or more commands to a database driver of a client that is communicati…
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/0793. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 12 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).