IP Library Granted Patent US 8,732,191
Granted Patent B2
US 8,732,191 · App. 13/398,606 · Granted May 20, 2014

System and method for improving application connectivity in a clustered database environment

Inventors: Alexander Somogyi (Basking Ridge, NJ); Naresh Revanuru (Fremont, CA); Stephen Felts (Denville, NJ); Tong Zhou (Merrick, NY)
Assignee: Oracle International Corporation
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 8,732,191
App. No.
13/398,606
Granted
May 20, 2014
Kind
B2
Abstract

A clustered database environment (e.g. Oracle Real Application Cluster (RAC)) includes multiple database instances that appear as one server. An application server (e.g. WebLogic Server (WLS)) can use a data source (e.g. an Oracle GridLink data source) and connection pools to connect with the clustered database. In accordance with an embodiment, a data source configuration allows for specification of a preferred affinity policy, such as a data affinity, temporal affinity, and/or session or session-based affinity policy. In accordance with an embodiment, the system includes a number of features that improve application connectivity in the clustered database environment, including a select-only case for application continuity, wherein an application-independent infrastructure, e.g. implemented within a Java Database Connectivity (JDBC) driver, enables recovery of work from an application perspective and masks system communications, hardware failures and hangs.

Claims (39)

1. A system for providing improved application connectivity in a data source and clustered database environment, comprising:

one or more computers including one or more processors, a clustered database, and a notification service associated with a plurality of database instances in the clustered database, wherein the notification service broadcasts notifications that describe state changes in the database instances of the clustered database; and

an application server, having a database driver and data source and connection pools associated therewith, wherein the data source and connection pools are used by the application server to manage connections to the plurality of database instances in the clustered database, for use by applications at the application server, and

wherein a connection is configured so that, during operation of an application using a web session that includes a query or update to the clustered database, the database driver records a state of information previously queried by the application from a database instance associated with the connection, so that, if the connection to the associated database instance fails, the database driver

determines the state of information previously queried by the application, during the web session, from the database instance associated with the connection, and

replays the web session against the clustered database to a point corresponding to the recorded state of information previously queried by the application,

to process the query or update against the clustered database, so that the application does not itself receive an error or exception.

2. The system of claim 1 , wherein the system performs replay of the web session for non-transactional read-only or select-only cases.

3. The system of claim 2 , wherein the database driver is a Java Database Connectivity (JDBC) driver.

4. The system of claim 3 , wherein the JDBC driver records the results of read-only or select data from the database instance, within a memory space of the database driver itself.

5. The system of claim 1 ,

wherein the database driver records the results of read-only or select data from the database instance associated with the connection, during the web session, within a memory space of the database driver, and

wherein upon the connection to the associated database instance failing, data stored within the memory spaces of the database driver in response to previously-received application requests is used by the database driver to replay the application requests, and responses, up to the point corresponding to the recorded state of information previously queried by the application.

6. A method for providing improved application connectivity in a data source and clustered database environment, comprising the steps of:

providing access to a clustered database system, and a notification service associated with a plurality of database instances in the clustered database, wherein the notification service notifications that describe state changes in the database instances of the clustered database; and

providing an application server, having a database driver and data source and connection pools associated therewith, wherein the data source and connection pools are used by the application server to manage connections to the plurality of database instances in the clustered database, for use by applications at the application server, and

wherein a connection is configured so that, during operation of an application using a web session that includes a query or update to the clustered database, the database driver records a state of information previously queried by the application from a database instance associated with the connection, so that, if the connection to the associated database instance fails, the database driver

determines the state of information previously queried by the application, during the web session, from the database instance associated with the connection, and

replays the web session against the clustered database to a point corresponding to the recorded state of information previously queried by the application,

to process the query or update against the clustered database, so that the application does not itself receive an error or exception.

7. The method of claim 6 , wherein the method performs replay of the web session for non-transactional read-only or select-only cases.

8. The method of claim 7 , wherein the database driver is a Java Database Connectivity (JDBC) driver.

9. The method of claim 8 , wherein the JDBC driver records the results of read-only or select data from the database instance, within the drivcr a memory space of the database driver itself.

10. The method of claim 6 ,

wherein the database driver records the results of read-only or select data from the database instance associated with the connection, during the web session, within a memory space of the database driver, and

wherein upon the connection to the associated database instance failing, data stored within the memory spaces of the database driver in response to previously-received application requests is used by the database driver to replay the application requests, and responses, up to the point corresponding to the recorded state of information previously queried by the application.

11. A non-transitory computer readable medium, including instructions stored thereon which when read and executed by one or more computers cause the one or more computers to perform the steps comprising:

providing access to a clustered database system, and a notification service associated with a plurality of database instances in the clustered database, wherein the notification service broadcasts notifications that describe state changes in the database instances of the clustered database; and

providing an application server, having a database driver and data source and connection pools associated therewith, wherein the data source and connection pools are used by the application server to manage connections to the plurality of database instances in the clustered database, for use by applications at the application server, and

wherein a connection is configured so that, during operation of an application using a web session that includes a query or update to the clustered database, the database driver records a state of information previously queried by the application from a database instance associated with the connection, so that, if the connection to the associated database instance fails, the database driver

determines the state of information previously queried by the application, during the web session, from the database instance associated with the connection, and

replays the web session against the clustered database to a point corresponding to the recorded state of information previously queried by the application,

to process the query or update against the clustered database, so that the application does not itself receive an error or exception.

12. The non-transitory computer readable medium of claim 11 , wherein the steps perform replay of the web session for non-transactional read-only or select-only cases.

13. The non-transitory computer readable medium of claim 12 , wherein the database driver is a Java Database Connectivity (JDBC) driver.

14. The non-transitory computer readable medium of claim 13 , wherein the JDBC driver records the results of read-only or select data from the database instance, within a memory space of the database driver itself.

15. The non-transitory computer readable medium of claim 11 ,

wherein the database driver records the results of read-only or select data from the database instance associated with the connection, during the web session, within a memory space of the database driver, and

wherein upon the connection to the associated database instance failing, data stored within the memory spaces of the database driver in response to previously-received application requests is used by the database driver to replay the application requests, and responses, up to the point corresponding to the recorded state of information previously queried by the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2012
From: SOMOGYI, ALEXANDER; REVANURU, NARESH; FELTS, STEPHEN; ZHOU, TONG
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 027720/0012 →
Continuity (2)
Provisional Application 61501583 · Jun 27, 2011
Related Publication 20130054600A1 · Feb 28, 2013