IP Library › Granted Patent US 8,326,996
Granted Patent B2
US 8,326,996 · App. 11/445,633 · Granted Dec 4, 2012

Method and apparatus for establishing multiple sessions between a database and a middle-tier client

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,326,996
App. No.
11/445,633
Granted
Dec 4, 2012
Kind
B2
Abstract

One embodiment of the present invention provides a system for establishing multiple sessions between a database and a middle-tier client. During operation, the system receives a request for a plurality of sessions at a database from a middle-tier client. In response to the request, the system authenticates the middle-tier client, and creates a session between the database and the middle-tier client. The system clones the session one or more times to create the plurality of sessions. Finally, the system sends a plurality of session-handles associated with the plurality of sessions to the middle-tier client. This enables the middle-tier client to distribute the session-handles to end-user clients in response to subsequent requests from the end-user clients to access the database.

Claims (56)

1. A method for establishing multiple sessions between a database and a middle-tier client, the method comprising:

receiving a single request for a plurality of sessions at a database from a middle-tier client;

in response to successfully authenticating the middle-tier client, creating a first session between the database and the middle-tier client;

creating, by the database, other sessions by cloning the first session one or more times;

sending from the database to the middle-tier client a plurality of session-handles for the first and the other cloned sessions in response to the single request, wherein each session-handle comprises a session-key;

receiving at the database from the middle-tier client a session-handle selected from the plurality of session-handles by an end-user client, wherein the received session-handle corresponds to a second session;

verifying, at the database, the session-key in the received session-handle to determine that the middle-tier client is authorized to use the second session; and

executing, at the database, a command received from the middle-tier client using the second session.

2. The method of claim 1 , wherein the number of sessions to create for the plurality of sessions requested is determined by one or more of:

a user-defined value; and

a result obtained by profiling an organization's use of the database.

3. The method of claim 1 , wherein a given session-handle further comprises one or more of:

a connection-handle;

a time-stamp, which specifies when the session-handle is created; and

an expiration, which specifies how long the session-handle is valid.

4. The method of claim 1 , wherein the single request for the plurality of sessions occurs in response to one or more of:

a lower threshold for a number of unused session-handles being reached, wherein the lower threshold includes zero; and

a command received at the middle-tier client from the end-user client which does not receive a session-handle when no more unused session-handles exist.

5. The method of claim 1 , wherein creating the session between the database and the middle-tier client involves cloning an existing session between the database and the middle-tier client.

6. The method of claim 1 , wherein the plurality of sessions are distributed over a plurality of connections.

7. The method of claim 1 , wherein cloning the session involves cloning a plurality of network and security attributes associated with the session.

8. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for establishing multiple sessions between a database and a middle-tier client, the method comprising:

receiving a single request for a plurality of sessions at a database from a middle-tier client;

in response to successfully authenticating the middle-tier client, creating a first session between the database and the middle-tier client;

creating, by the database, other sessions by cloning the first session one or more times;

sending from the database to the middle-tier client a plurality of session-handles for the first and the other cloned sessions in response to the single request, wherein each session-handle comprises a session-key;

receiving at the database from the middle-tier client a session-handle selected from the plurality of session-handles by an end-user client, wherein the received session-handle corresponds to a second session;

verifying, at the database, the session-key in the received session-handle to determine that the middle-tier client is authorized to use the second session; and

executing, at the database, a command received from the middle-tier client using the second session.

9. The non-transitory computer-readable storage medium of claim 8 , wherein the number of sessions to create for the plurality of sessions requested is determined by one or more of:

a user-defined value; and

a result obtained by profiling an organization's use of the database.

10. The non-transitory computer-readable storage medium of claim 8 , wherein a given session-handle further comprises one or more of:

a connection-handle;

a time-stamp, which specifies when the session-handle is created; and

an expiration, which specifies how long the session-handle is valid.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the single request for the plurality of sessions occurs in response to one or more of:

a lower threshold for a number of unused session-handles being reached, wherein the lower threshold includes zero; and

a command received at the middle-tier client from the end-user client which does not receive a session-handle when no more unused session-handles exist.

12. The non-transitory computer-readable storage medium of claim 8 , wherein creating the session between the database and the middle-tier client involves cloning an existing session between the database and the middle-tier client.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the plurality of sessions are distributed over a plurality of connections.

14. The non-transitory computer-readable storage medium of claim 8 , wherein cloning the session involves cloning a plurality of network and security attributes associated with the session.

15. An apparatus that establishes multiple sessions between a database and a middle-tier client, comprising:

a database comprising;

a receiving mechanism configured to receive a single request for a plurality of sessions at the database from a middle-tier client;

a creating mechanism configured to create a first session between the database and the middle-tier client in response to successfully authenticating the middle-tier client;

a cloning mechanism configured to create other sessions by cloning the first session one or more times;

a sending mechanism configured to send from the database to the middle-tier client a plurality of session-handles for the first and the other cloned sessions in response to the single request, wherein each session-handle comprises a session-key; and

an executing mechanism configured to:

receive at the database from the middle-tier client a session-handle selected from the plurality of session-handles by an end-user client, wherein the received session-handle corresponds to the second session;

verify, at the database, the session-key in the received session-handle to determine that the middle-tier client is authorized to use the second session; and

execute, at the database, the command received from the middle-tier client using the second session.

16. The apparatus of claim 15 , further comprising a requesting mechanism configured to request the plurality of sessions in response to:

a lower threshold for a number of unused session-handles being reached, wherein the lower threshold can include zero; and

a command received at the middle-tier client from an end-user client which did not receive a session-handle when there are no remaining unused session-handles.

17. The apparatus of claim 15 , further comprising a distribution mechanism configured to distribute the plurality of sessions over a plurality of connections.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2006
From: WONG, DANIEL MANHUNG
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 017951/0381 →
Continuity (1)
Related Publication 20070283021A1 · Dec 6, 2007