Patent ID: 7454661

Claim:
A computer-implemented method of rejuvenating a software application, the method comprising: selecting the software application and one or more additional software applications from a plurality of active software applications, wherein the plurality of active software applications are running on a single computer system; reading a rejuvenation profile associated with the plurality of active software applications; first determining, based on one of the rejuvenation profiles, whether one or more of the active software applications supports rejuvenation; second determining whether one or more of the active applications is already being rejuvenated; third determining, based on the first and second determinations, whether one or more of the active applications is a rejuvenation candidate; writing the rejuvenation candidates to a rejuvenation list, wherein the software application is included in the rejuvenation list; comparing the number of rejuvenation candidates in the rejuvenation list to a predetermined rejuvenation limit; removing one or more of the rejuvenation candidates from the rejuvenation list, without removing the software application from the rejuvenation list, in response to the number of rejuvenation candidates in the rejuvenation list exceeding the predetermined rejuvenation limit; identifying an active replica of the software application, wherein the active replica maintains state data while handling client requests; registering the active replica with a name server by associating a handle of the active replica with the software application; creating a new replica of the software application; transferring the state data from the active replica to the new replica; registering the new replica with the name server after the transfer of the state data, the registering of the new replica including associating a handle of the new replica with the software application and removing the association of the active replica with the software application; redirecting the client requests from the active replica to the new replica wherein the redirecting comprises: requesting, from a client process that sends the client requests, the handle of the active replica that corresponds to the software application; retrieving, by the name server, the handle associated with the software application; and sending the retrieved handle to the client process, wherein the handle of the active replica is sent to the client process prior to the registration of the new replica with the name server, and wherein the handle of the new replica is sent to the client process after the registration of the new replica with the name server; and terminating the active replica after the transferring and the redirecting, wherein the new replica becomes the active replica when the active replica is terminated.