Claims
- 1. A method for recovering transactions comprising:
first performing failover migration of a transaction recovery service from a failed primary server to a back-up server, the primary server having a transaction log, the transaction recovery service having ownership of the transaction log; second performing recovery for the failed primary server, the recovery performed on the backup server; and third performing failback migration of the transaction recovery service from the back-up server to the primary server.
- 2. The method of claim 1 wherein said first performing failover migration includes:
initiating failover migration by an administrator.
- 3. The method of claim 2 wherein said initiating failover migration by an administrator includes an administrator issuing a migration command.
- 4. The method of claim 1 wherein the back-up server has multiple transaction recovery services residing on the back-up server, each transaction recovery service corresponding to a different primary server and a corresponding transaction log.
- 5. The method of claim 1 wherein said first performing failover migration includes:
detecting that the primary server has failed; moving the transaction recovery service to the back-up server; and activating the transaction recovery service on the back-up server.
- 6. The method of claim 1 wherein said second performing recovery for the failed primary server includes:
reading the transaction log of the primary server by the transaction recovery service while the transaction recovery service resides in the back-up server; and enabling the back-up server to read and coordinate transactions from the primary server's transaction log.
- 7. The method of claim 1 wherein said third performing failback migration includes:
initiating failback migration of the transaction recovery service to the primary server; and completing failback migration of the transaction recovery service to the primary server.
- 8. The method of claim 7 wherein said initiating failback migration includes:
detecting the startup of the primary server.
- 9. The method of claim 7 wherein said completing failback migration includes:
deactivating the transaction recovery service on the back-up server; moving the transaction recovery service from the back-up server to the primary server; and activating the transaction service on the primary server.
- 10. The method of claim 7 wherein said completing failback migration includes moving the transaction recovery service from the back-up server to the primary server before primary server transaction recovery is complete.
- 11. The method of claim 7 wherein said completing failback migration includes moving the transaction recovery service from the back-up server to the primary server after primary server transaction recovery is complete.
- 12. The method of claim 1 wherein said first performing failover migration is done automatically without user input, said second performing recovery is done automatically without user input, and said third performing failback migration is done automatically without user input.
- 13. A method for performing transaction recovery comprising:
(a) detecting a first server is down, the first server having a first transaction log on a memory and a first transaction recovery service; (b) moving the first transaction recovery service to a second server; (c) activating the first transaction recovery service on the second server; (d) performing transaction recovery on behalf of the first server by the first transaction recovery service while the first transaction recovery service resides on the second server; (e) deactivating the first transaction recovery service on the second server; (f) moving the first transaction recovery service to the first server; and (g) activating the first transaction recovery service on the first server.
- 14. The method as claimed in claim 13 wherein said (b) moving the first transaction recovery service to a second server is initiated by a user.
- 15. The method as claimed in claim 13 further comprising step (h) completing transaction recovery on behalf of the first server by the first transaction recovery service, said completing transaction recovery occurring between steps (d) and (e).
- 16. The method as claimed in claim 13 further comprising step (i) initiating restart of the first server before transaction recovery on behalf of the first server is complete, step (i) occurring between steps (d) and (e), wherein deactivating the first transaction recovery service is performed before completing transaction recovery.
- 17. The method of claim 3 wherein the issuing a migration command includes a user manually issuing a migration command using a console implemented as a GUI system.
- 18. The method of claim 3 wherein the issuing a migration command includes a user manually issuing a migration command using a command line.
- 19. The method of claim 3 wherein the issuing a migration command includes a user manually issuing a migration command using a JMX MBean.
- 20. The method as claimed in claim 4 wherein the backup server includes its own transaction recovery service, wherein the backup server's transaction recovery service functions as usual during migration failover and failback.
- 21. The method of claim 13 wherein the second server includes a second transaction log, access to the memory, and a second transaction recovery service.
- 22. The method of claim 5 wherein moving the transaction recovery service to the back-up server includes manually issuing a migration command by a user.
- 23. The method of claim 5 wherein moving the transaction recovery service to the back-up server includes automatically moving the transaction recovery service to the back-up server by a migration service framework.
- 24. The method of claim 5 wherein the transaction recovery service is registered with the migration service framework.
- 25. The method as claimed in claim 7 wherein initiating failback migration includes completing recovery for the primary server.
- 26. The method as claimed in claim 14 wherein step (b) moving the first transaction recovery service as initiated by a user includes manually issuing a migration command using a console implemented as a GUI system.
- 27. The method as claimed in claim 14 wherein step (b) moving the first transaction recovery service as initiated by a user includes manually issuing a migration command using a command line.
- 28. The method as claimed in claim 14 wherein step (b) moving the first transaction recovery service as initiated by a user includes manually issuing a migration command using a JMX MBean.
- 29. A method for manually performing failover migration from a failed primary server to a backup server comprising:
manually migrating a TRS from a failed primary server to a backup server; calling a JAVA method of the TRS while the TRS resides on the backup server, the JAVA method configured to activate the TRS on the backup server; reading the primary server's TLOG files by the TRS; instantiating and placing transactions in the backup server's transaction map by the TRS; and performing recovery for the primary server on the backup server by the TRS, recovery including driving prepared transactions to completion and performing resource recovery.
- 30. A method for manually performing failback migration from a backup server to a primary server after recovery on a primary server is complete comprising:
completing recovery for a failed primary server by a TRS associated with the primary server and residing on the backup server; requesting a migratable framework to migrate the TRS from the backup server to the primary server, the backup server making the request to the migratable framework; deactivating the TRS residing on the backup server by the migratable framework, wherein deactivating the TRS includes the migratable framework calling a JAVA method residing in the TRS to deactivate the TRS on the backup server; and migrating the TRS from the backup server to the primary server by the migratable framework, wherein the primary server regains ownership of a TLOG corresponding to the primary server upon primary server restart.
- 31. A method for manually performing failback migration from a backup server to a primary server before recovery on a primary server is complete comprising:
performing recovery for a failed primary server by a TRS associated with the primary server and residing on the backup server; notifying the backup server that the primary server has restarted, the notification including an administrative MBean; requesting a migratable framework to migrate the TRS from the backup server to the primary server, the TRS making the request to the migratable framework; deactivating the TRS residing on the backup server by the migratable framework, wherein deactivating the TRS includes the migratable framework calling a JAVA method residing in the TRS to deactivate the TRS on the backup server; and migrating the TRS from the backup server to the primary server by the migratable framework, wherein upon a primary server restart, the primary server regains ownership of a TLOG corresponding to the primary server and completes recovery of the primary server.
- 32. The method of claim 31 wherein deactivating the TRS includes the TRS suspending recovery processing for the primary server, checkpointing the TLOG for the primary server, purging transactions in the transaction map of the backup server that originated from the TLOG of the primary server, and ending resource recovery performed for the primary server.
- 33. A method for automatically performing failover migration from a failed primary server to a backup server comprising:
detecting the failure of a primary server by a migratable framework; migrating a TRS associated with the primary server from the failed primary server to a backup server, said migrating a TRS including deactivating the TRS on the primary server by calling an MBean method of the TRS by the migratable framework; activating the TRS on the backup server, said activating the TRS including reading a TLOG of the primary server, instantiating transactions from the TLOG and moving them to the transaction map of the backup server, and scheduling resource recovery for the failed primary server; and performing recovery for the primary server by the TRS while the TRS resides on the backup server, said performing recovery including driving prepared transactions to completion and performing resource recovery.
- 34. A method for automatically performing failback migration from a backup server to a primary server after recovery performed on a primary server is complete, the method comprising:
completing recovery for a primary server by a TRS associated with the primary server, the TRS completing recovery for the primary server while the TRS resides on a backup server, said completing recovery including the TRS checkpointing a TLOG associated with the primary server and relinquishing control of the TLOG of the primary server; initiating migration of the TRS from the backup server to the primary server, said initiating migration of the TRS including the backup server requesting the migratable framework to migrate the TRS to the primary server; deactivating the TRS on the backup server, said deactivating the TRS including calling an MBean method of the TRS by the migratable framework; and migrating the TRS from the backup server to the primary server by the migratable framework, wherein the primary server regains TLOG ownership upon primary server startup.
- 35. A method for automatically performing failback migration from a backup server to a primary server before recovery performed on a primary server is complete, the method comprising:
restarting a primary server, wherein performing recovery on the primary server is not completed by a TRS residing on the backup server before the primary server is restarted; initiating migration of a TRS associated with a primary server from a backup server to the primary server, said initiating migration including detecting the startup of the primary server by a migratable framework; deactivating the TRS residing on the backup server, said deactivating including calling a JAVA method of the TRS to deactivate the TRS, the method configured to:
checkpoint a TLOG associated with the primary server; purging transactions in the transaction map of the backup server that originated from the TLOG of the primary server; and
stopping resource recovery being performed for the primary server; migrating the TRS to the primary server; and activating the TRS on the primary server, said activating the TRS including calling a JAVA method of the TRS to activate the TRS, wherein the primary server regains ownership of the TLOG and performs recovery as required.
- 36. The method of claim 35 wherein said transaction recovery service is a JAVA server instance.
- 37. The method of claim 36 wherein each transaction recovery service is associated with a JAVA element that indicates an alternate server as a migratable target for the transaction recovery service, wherein a user may specify the alternate server within the JAVA method.
- 38. The method of claim 36 wherein a first JAVA MBean corresponds to each of the backup server and the primary server, each first MBean including runtime information regarding the transaction recovery system instances hosted by the corresponding backup server or primary server.
- 39. The method of claim 38 wherein the first MBean includes a first JAVA method that returns whether a transaction recovery service instance is currently activated on a particular server.
- 40. The method of claim 38 wherein performing recovery on a failed server includes reading transactions from a transaction log by the transaction recovery service relating to the failed server, the transaction log corresponding to the failed server, wherein the first MBean includes a second JAVA method configured to return the total number of transactions read from the transaction log by the transaction recovery service.
- 41. The method of claim 38 wherein the first MBean includes a third JAVA method that returns the percentage of the recovered transactions that are completed by the transaction recovery service.
- 42. The method of claim 38 wherein a second MBean may access the runtime information of each first MBean.
- 43. The method of claim 42 wherein the second MBean includes a fourth JAVA method that returns an array of MBeans corresponding to the transaction recovery service instances deployed on a server.
- 44. The method of claim 38 wherein the second MBean includes a fifth JAVA method that returns the first MBean.
- 45. The method of claim 5 wherein moving the transaction recovery service to the back-up server is implemented by a command line administration tool implemented as a JAVA program.
- 46. The method of claim 5 wherein moving the transaction recovery service to the back-up server is implemented by a JAVA MBean.
- 47. The method of claim 1 wherein said transaction recovery service is a server instance implemented in java.
- 48. The method of claim 13 wherein said transaction recovery service is a server instance implemented in java.
- 49. A method for performing transaction recovery within a cluster comprising:
performing failover migration of a transaction recovery service from a failed primary server to a backup server, the transaction recovery service implemented as a java instance and owning a transaction log corresponding to the primary server; activating the transaction recovery service on the backup server by the migratable framework, the migratable framework operable to call an activation method of the transaction recovery service, the activation method implemented in java, activating the transaction recovery service including:
reading the transaction log of the primary server; placing primary server transaction files in a transaction map of the backup server; and scheduling resource recovery for the primary server; performing transaction recovery on behalf of the failed primary server by the transaction recovery service, transaction recovery including driving prepared transactions to completion and performing resource recovery; initiating migration from the backup server to the primary server upon the occurrence of an event; and performing failback migration of the transaction recovery service from the backup server to the primary server, failback migration including:
deactivating the transaction recovery service on the backup server by the migratable framework, the migratable framework operable to call a deactivation method of the transaction recovery service, the deactivation method implemented in java; migrating the transaction recovery service to the primary server; and activating the transaction recovery service on the primary server by calling the activation method.
- 50. The method of claim 49 wherein the event is the completion of the recovery performed on behalf of the primary server.
- 51. The method of claim 49 wherein the event is the restart of the primary server.
- 52. The method of claim 1 wherein the failover migration, recovery, and failback migration provide highly available transaction recovery and improve the availability of the server.
- 53. The method of claim 13 wherein the method for performing transaction recovery provide highly available transaction recovery and improve the availability of the server.
- 54. The system of claim 16 wherein the transaction recovery system is configured to provide highly available transaction recovery and improve the availability of the server.
- 55. The method of claim 49 wherein the method for performing transaction recovery in a cluster provides highly available transaction recovery and improve the availability of the server.
- 56. A method for recovering transactions comprising:
performing failover migration of a transaction recovery service from a failed primary server to a backup server, the primary server having a transaction log, and the transaction recovery service having ownership of the log; and allowing the backup server to read the transaction log and perform recovery on behalf of the failed server.
- 57. The method of claim 56 including the step of:
performing recovery on the primary server.
- 58. The method of claim 57 including the step of:
performing failback migration of the transaction recovery service from the backup server to the primary server.
- 59. The method of claim 56 wherein said primary server and the backup server are in a cluster.
- 60. The method of claim 56 wherein transaction recovery is accomplished automatically.
- 61. The method of claim 56 wherein transaction recovery is accomplished manually.
- 62. The method of claim 56 wherein transaction recovery is accomplished manually by an administrator.
- 63. The method of claim 56 including a migratable service framework and wherein said transaction recovery service depends upon the migratable service framework for manual migration support.
- 64. The method of claim 56 including a migratable service framework and wherein said transaction recovery service depends upon the migratable service framework for automatic migration support.
- 65. The method of claim 56 wherein said transaction recovery service is a server instance implemented in java.
- 66. The method of claim 56 wherein said transaction recovery service is manually migrated and monitored by one of an administration console and a JMX API.
- 67. The method of claim 16 wherein said first transaction recovery service and second transaction recovery service are each a server instance implemented in java.
- 68. In a cluster of servers, a server high availability method comprising the step of performing transaction recovery in a backup server using a transaction recovery service and a transaction log stored in a memory shared between the backup server and a failed server before the step of restating the failed server.
- 69. In a cluster of servers, a server high availability method comprising the step of performing transaction recovery in a backup server using a transaction recovery service and a transaction log before the step of restating a failed server.
CLAIM TO PRIORITY
[0001] The present application claims the benefit of priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application entitled “HIGHLY AVAILABLE TRANSACTION RECOVERY FOR TRANSACTION PROCESSING SYSTEMS”, Patent Application No. 60/359,226, filed on Feb. 22, 2002, which application is incorporated herein by reference.
[0002] The present application is related to the following United States Patents and Patent Applications, which patents/applications are assigned to the owner of the present invention, and which patents/applications are incorporated by reference herein in their entirety:
[0003] United States Patent Application No. 09/xxx,xxx, entitled “Migratable Services”, filed on xxx xx, xxxx, currently pending;
[0004] United States Patent Application No. xx/xxx,xxx, entitled “SYSTEM FOR HIGHLY AVAILABLE TRANSACTION RECOVERY FOR TRANSACTION PROCESSING SYSTEMS”, filed on January xx, 2003, currently pending, which claims priority to provisional United States Patent Application entitled “HIGHLY AVAILABLE TRANSACTION RECOVERY FOR TRANSACTION PROCESSING SYSTEMS”, Patent Application No. 60/359,226, filed on Feb. 22, 2002.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60359226 |
Feb 2002 |
US |