Database Driver Smart Error Recovery via Server Commands

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database applications face challenges in handling errors from database servers, leading to complex application development and troubleshooting difficulties due to the need for error handling logic and the inability to anticipate all error codes, especially in large-scale deployments.

Innovation Solution

A database driver is configured to perform intelligent error recovery operations by receiving commands from the database server to manage actions such as preventing reconnections and collecting performance data, allowing for smart error recovery without additional logic in the application layer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If error handling logic is included in the database application, then error recovery capability is improved, but application complexity increases

Engineering Contradiction:
Improveerror recovery capabilityVSAvoidapplication complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts error handling logic from the database application layer and relocates it to the database driver layer. This allows the application to remain simple while the driver handles error recovery operations. The driver receives error messages from the server and executes recovery commands without requiring application-level intervention or complex error handling code in the application.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The database driver acts as an intermediary between the database server and the application. It intercepts error messages from the server, processes recovery commands, and manages error recovery operations. This intermediary role eliminates the need for the application to directly handle errors, reducing application complexity while maintaining reliable error recovery.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive error handling is implemented, then reliability is improved, but difficulty of detecting and measuring problems increases

Engineering Contradiction:
Improveerror handling coverageVSAvoidtroubleshooting difficulty
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements feedback mechanisms where the database server sends error messages and recovery commands to the driver, which then executes recovery operations and reports status. This structured feedback loop provides clear visibility into error conditions and recovery actions, making it easier to detect and measure problem states without compromising comprehensive error handling coverage.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If local interaction with each database application is required for troubleshooting, then measurement precision is improved, but productivity decreases

Engineering Contradiction:
Improvetroubleshooting accuracyVSAvoidtroubleshooting efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The database driver serves multiple functions including error handling, recovery operations, and troubleshooting support. By consolidating these functions in the driver layer rather than requiring separate application-level implementations, the system enables centralized management of error recovery across multiple applications, improving troubleshooting efficiency while maintaining precise error detection capabilities.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2909723B1Smart error recovery for database applications
Publication Date: 2019.05.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2909723B1 patent drawingFigure 1
  • EP2909723B1 patent drawingFigure 2
  • EP2909723B1 patent drawingFigure 3

AI summary

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.