Planned session termination for clients accessing a resource through a server
First Claim
1. A method for passing a client from a first server to which the client was connected for accessing a resource to a second server, the method comprising the steps of:
- while said first server is executing, causing said first server to cease responding to said client while continuing to allow said server to respond to one or more other clients;
automatically connecting said client with the second server, wherein said second server has access to said resource; and
after automatically connecting said client, said client accessing said resource through said second server.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for passing a client from a first server to which the client was connected for accessing a resource, to a second server for accessing the resource. While executing, the first server ceases to respond to the client. After the client detects that the first server has ceased to respond to the client, the client is automatically connected with the second server that has access to the resource. After automatically connecting the client, the client accesses the resource through the second server. The client stores information about the state of the session with the first server so that processing can continue where it left off after the client connects with the second server. The client may be pre-connected to the second server prior to the failure of the first server to reduce the latency caused by switching in response to a failure. The second server may be configured to pre-parse the commands that the client issues to the first server to further reduce the latency associated with switching to the second server.
142 Citations
57 Claims
-
1. A method for passing a client from a first server to which the client was connected for accessing a resource to a second server, the method comprising the steps of:
-
while said first server is executing, causing said first server to cease responding to said client while continuing to allow said server to respond to one or more other clients;
automatically connecting said client with the second server, wherein said second server has access to said resource; and
after automatically connecting said client, said client accessing said resource through said second server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
receiving a message requesting said first server to stop accepting transactions and commands sent from said client; and
in response to receiving said message, said first server refusing to accept transactions from said client.
-
-
4. The method of claim 3 further comprising the step of said message including data that causes said first server to complete all transactions and commands sent from said client and already received by said first server.
-
5. The method of claim 3 further comprising the step of said message including data that causes said first server to complete all currently active transactions and commands sent from said client and received by said first server.
-
6. The method of claim 3 further comprising the step of said message including data that causes said first server to begin refusing to accept transactions and commands sent from said client after a threshold period of time.
-
7. The method of claim 1 wherein the step of causing said first server to cease responding to said client includes the steps of:
-
an administrator causing said first server to halt the execution of any active database transaction or command sent from said client and received by said first server, wherein said administrator is a process that can communicate with said first server; and
said first server halting the execution of any active database transaction or command sent by said client and received from said first server.
-
-
8. The method of claim 3 further comprising the step of said message including data that causes said first server to halt the execution of any active database transaction or command sent from said client and received by said first server after a threshold period of time.
-
9. The method of claim 1 wherein:
-
said connection between said client and said first server constitutes a session;
said session has a state that changes in response to said first server executing commands sent by said client to said first server using said session; and
said method further comprises the step of pre-parsing said commands on said second server prior to causing said first server to cease to respond to said client.
-
-
10. The method of claim 1 further comprising the step of pre-connecting said client to said second server prior to causing said first server to cease to respond to said client.
-
11. The method of claim 2 further comprising the step of said client selecting and establishing a second connection with said second server after said first server ceases to respond to said client.
-
12. The method of claim 1 further comprising the step of said client causing said second server to roll back said resource to a valid state.
-
13. The method of claim 1 wherein:
-
said first server is executing a select command when said first server ceases to respond to said client; and
the method further comprises the step of said client causing said second server to complete execution of said select command after said client is connected to said second server.
-
-
14. The method of claim 1 wherein:
-
said client is causing said first server to execute a transaction when said first server ceases to respond to said client; and
said client causes said second server to complete execution of said transaction after said client connects to said second server.
-
-
15. The method of claim 1 wherein:
-
the first server is connected to the client through a session;
the method includes the steps of maintaining values that reflect a state of said session at both said client and said first server; and
said client communicating said values to said second server after connecting to said second server.
-
-
16. The method of claim 1 wherein:
-
said client is causing said first server to execute a transaction when said first server ceases to respond to said client; and
said client causes said resource to be rolled back to a savepoint, wherein said savepoint represents an intermediate point in the execution of said transaction.
-
-
17. The method of claim 16 further comprising the step of said client causing said second server to complete the execution of said transaction from said savepoint after said client connects to said second server.
-
18. The method of claim 1 further comprising the steps of:
-
said client causing said first server to execute a database instruction when said first server ceases to respond to said client;
said client calculating a checksum based on results returned by said first server; and
said client using said checksum to determine whether to cause said second server to continue executing said database instruction from where said database instruction was interrupted when said first server terminated.
-
-
19. The method of claim 18 further comprising the step of said client using said checksum to complete the execution of said database instruction from where said database instruction was interrupted when said first server ceased to respond to said client.
-
20. The method of claim 2 wherein:
-
said step of causing said first server to cease responding to said client includes the step of terminating a connection between a first database server and a database client, wherein the first database server has access to a database;
said step of detecting that said first server has ceased to respond to said client includes the step of detecting that a connection between said first database server and said database client has terminated;
said step of automatically connecting said client with a second server that has access to said resource includes the step of automatically connecting said database client with a second database server that has access to said database; and
said step of said client accessing said resource through said second server includes the step of said database client accessing said database through said second database server.
-
-
21. The method of claim 2 where the step of automatically connecting said client with said second server is performed in response to causing said first server to cease responding to said client.
-
22. The method of claim 1 wherein:
-
the step of causing said first server to cease responding to said client includes the steps of receiving a message at said first server requesting that a first connection be removed between said first server and said client; and
in response to receiving said message, said first server removing the first connection between said first server and said client;
the step of said client detecting that said first server has ceased to respond to said client includes the step of said client detecting that said first connection between said first server and said client has been removed; and
the step of automatically connecting includes the steps of selecting a second server, wherein the second server has access to said resource; and
automatically connecting said client with said second server to establish a second connection for accessing said resource.
-
-
23. The method of claim 1 further comprising the steps of:
-
storing data on said client that indicates a state of execution of one or more operations executing on said first server; and
transmitting said data that indicates said state of execution of said one or more operations to said second server.
-
-
24. The method of claim 23 wherein:
-
the step of storing data on said client includes the step of storing information that tracks the execution of a database transaction executing on said first server; and
the step of transmitting said data includes the step of, after automatically connecting said client to said second server, transmitting said information to said second server.
-
-
25. The method of claim 1 further comprising the steps of:
-
storing data on said client that tracks a state of execution of one or more operations, wherein the one or more operations are being executed by said first server; and
after automatically connecting said client to said second server, using said data that is stored on said client to complete the execution of said one or more operations, wherein said one or more operations are completed using said second server.
-
-
26. A computer readable medium containing sequences of instructions for passing a client from a first server to which the client was connected for accessing a resource to a second server, the sequences of instructions including instructions for performing the steps of:
-
while said first server is executing, causing said first server to cease responding to said client while continuing to allow said server to respond to one or more other clients;
automatically connecting said client with the second server, wherein said second server has access to said resource; and
after automatically connecting said client, said client accessing said resource through said second server. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
said step of causing said first server to cease responding to said client includes the step of terminating a connection between a first database server and a database client, wherein the first database server has access to a database;
said step of detecting that said first server has ceased to respond to said client includes the step of detecting that a connection between said first database server and said database client has terminated;
said step of automatically connecting said client with a second server that has access to said resource includes the step of automatically connecting said database client with a second database server that has access to said database; and
said step of said client accessing said resource through said second server includes the step of said database client accessing said database through said second database server.
-
-
30. The computer readable medium of claim 27 where the step of automatically connecting said client with said second server is performed in response to causing said first server to cease responding to said client.
-
31. The computer readable medium of claim 26 wherein the step of causing said first server to cease responding to said client includes the steps of:
-
receiving a message requesting said first server to stop accepting transactions and commands sent from said client; and
in response to receiving said message said first server refusing to accept transactions from said client.
-
-
32. The computer readable medium of claim 31 further comprising sequences of instructions for performing the step of said message including data that causes said first server to complete all transactions and commands sent from said client and already received by said first server.
-
33. The computer readable medium of claim 31 further comprising sequences of instructions for performing the step of said message including data that causes said first server to complete all currently active transactions and commands sent from said client and received by said first server.
-
34. The computer readable medium of claim 31 further comprising sequences of instructions for performing the step of said message including data that causes said first server to begin refusing to accept transactions and commands sent from said client after a threshold period of time.
-
35. The computer readable medium of claim 31 further comprising the sequences of instructions for performing the step of said message including data that causes said first server to halt the execution of any active database transaction or command sent from said client and received by said server after a threshold period of time.
-
36. The computer readable medium of claim 26 wherein the step of causing said first server to cease responding to said client includes the steps of:
-
an administrator causing said first server to halt the execution of any active database transaction or command sent from said client and received by said server, wherein said administrator is a process that can communicate with said first server; and
said first server halting the execution of any active database transaction or command sent by said client and received from said first server.
-
-
37. The computer-readable medium of claim 26 wherein:
-
the step of causing said first server to cease responding to said client includes the steps of receiving a message at said first server requesting that a first connection be removed between said first server and said client; and
in response to receiving said message, said first server removing the first connection between said first server and said client;
the step of said client detecting that said first server has ceased to respond to said client includes the step of said client detecting that said first connection between said first server and said client has been removed; and
the step of automatically connecting includes the steps of selecting a second server, wherein the second server has access to said resource; and
automatically connecting said client with said second server to establish a second connection for accessing said resource.
-
-
38. The computer readable medium of claim 26 wherein:
-
said first server is executing a select command when said first server ceases to respond to said client; and
the computer readable medium further comprises instructions for performing the step of said client causing said second server to complete execution of said select command after said client is connected to said second server.
-
-
39. The computer readable medium of claim 26 wherein:
-
said client is causing said first server to execute a transaction when said first server ceases to respond to said client; and
said client causes said second server to complete execution of said transaction after said client connects to said second server.
-
-
40. The computer readable medium of claim 26 wherein:
-
the first server is connected to the client through a session;
the computer readable medium includes instructions for performing the steps of maintaining values that reflect a state of said session at both said client and said first server; and
said client communicating said values to said second server after connecting to said second server.
-
-
41. The computer readable medium of claim 26 wherein:
-
said client is causing said first server to execute a transaction when said first server ceases to respond to said client; and
said client causes said resource to be rolled back to a savepoint, wherein said savepoint represents an intermediate point in the execution of said transaction.
-
-
42. The computer readable medium of claim 41 further comprising instructions for performing the step of said client causing said second server to complete the execution of said transaction from said savepoint after said client connects to said second server.
-
43. The computer readable medium of claim 26 further comprising instructions for performing the steps:
-
said client causing said first server to execute a database instruction when said first server ceases to respond to said client;
said client calculating a checksum based on results returned by said first server; and
said client using said checksum to determine whether to cause said second server to continue executing said database instruction from where said database instruction was interrupted when said first server terminated.
-
-
44. The computer readable medium of claim 43 further comprising instructions for performing the step of said client using said checksum to complete the execution of said database instruction from where said database instruction was interrupted when said first server ceased to respond to said client.
-
45. The computer readable medium of claim 26 further comprising instructions for performing the steps of:
-
storing data on said client that indicates a state of execution of one or more operations executing on said first server; and
transmitting said data that indicates said state of execution of said one or more operations to said second server.
-
-
46. The computer readable medium of claim 45 wherein:
-
the step of storing data on said client includes the step of storing information that tracks the execution of a database transaction executing on said first server; and
the step of transmitting said data includes the step of, after automatically connecting said client to said second server, transmitting said information to said second server.
-
-
47. The computer readable medium of claim 26 further comprising instructions for performing the steps of:
-
storing data on said client that tracks a state of execution of one or more operations, wherein the one or more operations are being executed by said first server; and
after automatically connecting said client to said second server, using said data that is stored on said client to complete the execution of said one or more operations, wherein said one or more operations are completed using said second server.
-
-
48. A method for handling a planned disconnect between a client and a predisconnect server, wherein a connection was established between said client and said predisconnect server for accessing a resource, the method comprising the steps of:
-
while said predisconnect server is executing, causing said predisconnect server to cease responding to said client while continuing to allow said server to respond to one or more other clients;
automatically connecting said client with a postdisconnect server that has access to said resource;
after automatically connecting to said client, said client accessing said resource through said postdisconnect server. - View Dependent Claims (49, 50, 51)
while client is connected to said predisconnect server, said client causing said predisconnect server to execute one or more operations;
storing on said client data that indicates a state of execution of said one or more operations; and
after automatically connecting to said postdisconnect server, sending the data that indicates the state of execution of said one or more operations to said postdisconnect server.
-
-
52. A computer-readable medium having stored thereon sequences of instructions for handling a planned disconnect between a client and a predisconnect server, wherein a connection was established between said client and said predisconnect server for accessing a resource, the sequences of instructions including instructions for performing the steps of:
-
while said predisconnect server is executing, causing said predisconnect server to cease responding to said client while continuing to allow said server to respond to one or more other clients;
automatically connecting said client with a postdisconnect server that has access to said resource;
after automatically connecting to said client, said client accessing said resource through said postdisconnect server.- View Dependent Claims (53, 54, 55)
while client is connected to said predisconnect server, said client causing said predisconnect server to execute one or more operations;
storing on said client data that indicates a state of execution of said one or more operations; and
after automatically connecting to said postdisconnect server, sending the data that indicates the state of execution of said one or more operations to said postdisconnect server.
-
-
56. A method for completing a transaction after intentionally dropping a first connection that was established between a client and a first server for accessing a resource, the method comprising the steps of:
-
performing a first portion of the transaction on the first server;
causing the first server to drop the first connection between the first server and the client;
detecting that the first connection between said first server and said client has been dropped;
automatically establishing a second connection between said client and a second server that has access to said resource; and
performing a second portion of the transaction on the second server to complete the transaction, wherein performance of the first portion of the transaction includes performance of at least some operations that are not performed by the second portion of the transaction.
-
-
57. A computer-readable medium having stored thereon sequences of instructions for completing a transaction after intentionally dropping a first connection that was established between a client and a first server for accessing a resource, the sequences of instructions including instructions for performing the steps of:
-
performing a first portion of the transaction on the first server;
causing the first server to drop the first connection between the first server and the client;
detecting that the first connection between said first server and said client has been dropped;
automatically establishing a second connection between said client and a second server that has access to said resource; and
performing a second portion of the transaction on the second server to complete the transaction, wherein performance of the first portion of the transaction includes performance of at least some operations that are not performed by the second portion of the transaction.
-
Specification