Claims
- 1. A method comprising:
providing a web server arrangement having a kernel-mode listener service capable of receiving a web request and providing said web request to at least one user mode web application, wherein said listener service and said web application are operatively configured by a user-mode administrative process; causing said administrative process to determine when said web application needs to be recycled; and causing said administrative process to selectively recycle said web application.
- 2. The method as recited in claim 1, wherein causing said administrative process to determine when said web application needs to be recycled further includes:
causing said administrative process to determine that said web application is failing to operate properly.
- 3. The method as recited in claim 2, wherein causing said administrative process to determine that said web application is failing to operate properly further includes:
causing at least one user-mode process associated with said web application to send a message to said administrative process, said message indicating a problem with said web application.
- 4. The method as recited in claim 3, wherein said at least one user-mode process includes a process selected from a group of processes including said web application, an in-process application, an out-of-process application, and an ISAPI extension.
- 5. The method as recited in claim 2, wherein causing said administrative process to determine that said web application is failing to operate properly further includes:
causing said administrative process to send a health status request message to said web application; and causing said administrative process to determine that said web application is failing to operate properly if said web application fails to respond to said health status request message within a defined period of time.
- 6. The method as recited in claim 5, wherein:
with said health status request message, causing said administrative process to determine if there is at least one thread associated with said web application available to accept a new request.
- 7. The method as recited in claim 2, wherein causing said administrative process to determine that said web application is failing to operate properly further includes:
causing said administrative process to determine that said web application is failing to operate properly when an operating system informs said administrative process that a handle associated with said web application has exited.
- 8. The method as recited in claim 1, wherein causing said administrative process to determine when said web application needs to be recycled further includes:
causing said administrative process to determine that said web application needs to be recycled based on an amount of time that said web application has been operating.
- 9. The method as recited in claim 1, wherein causing said administrative process to determine when said web application needs to be recycled further includes:
causing said administrative process to determine that said web application needs to be recycled based on a recycle schedule.
- 10. The method as recited in claim 1, further comprising:
causing said listener service to track a number of requests handled by said web application; and wherein causing said administrative process to determine when said web application needs to be recycled further includes causing said administrative process to determine that said web application needs to be recycled based on said number of requests handled by said web application.
- 11. The method as recited in claim 1, wherein causing said administrative process to determine when said web application needs to be recycled further includes:
causing said administrative process to determine that said web application needs to be recycled based on an amount of memory associated with said web application.
- 12. The method as recited in Claim 11, wherein said amount of memory associated with said web application includes at least one type of memory selected from a group comprising a private memory associated with said web application and a virtual memory associated with said web application.
- 13. The method as recited in claim 1, further comprising:
causing said listener service to track a number of requests handled by said web application over a defined period of time; and wherein causing said administrative process to determine when said web application needs to be recycled further includes causing said administrative process to determine that said web application needs to be recycled based on said number of requests handled by said web application over said defined period of time such that it is determined that said web application is deemed to have been idle during said defined period of time.
- 14. The method as recited in claim 1, further comprising:
causing said listener service to identify when there is a current demand for said web application; and wherein causing said administrative process to determine when said web application needs to be recycled further includes only recycling said web application when said listener service identifies said current demand for said we application.
- 15. The method as recited in claim 1, further comprising:
causing said administrative process to track a number of times that said web application has been recycled during a defined period of time; and wherein causing said administrative process to determine when said web application needs to be recycled further includes only recycling said web application when said number of times that said web application has been recycled during said defined period of time is less than a threshold value.
- 16. The method as recited in claim 15, wherein causing said administrative process to track a number of times that said web application has been recycled during a defined period of time includes tracking a number of times that said web application has been recycled for failing to operate properly during said defined period of time.
- 17. The method as recited in claim 15, wherein only recycling said web application when said number of times that said web application has been recycled during said defined period of time is less than said threshold value further includes:
causing said listener service to reject received requests for said web application when said number of times that said web application has been recycled during said defined period of time exceeds said threshold value.
- 18. The method as recited in claim 1, wherein causing said administrative process to selectively recycle said web application further includes:
causing said administrative process to conduct an overlapping recycle of said web application.
- 19. The method as recited in claim 1, wherein causing said administrative process to selectively recycle said web application further includes:
causing said administrative process to conduct a non-overlapping recycle of said web application.
- 20. A computer-readable medium having computer implementable instructions for configuring at least one processing unit to performing acts comprising:
establishing a web server arrangement having a kernel-mode listener service capable of receiving a web request and providing said web request to at least one user mode worker process, wherein said listener service and said worker process are operatively configured by a user-mode administrative service; configuring said administrative service to determine when said worker process needs to be recycled; and configuring said administrative service to selectively recycle said worker process.
- 21. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to determine when said worker process needs to be recycled further includes:
configuring said administrative service to determine that said worker process is failing to operate properly.
- 22. The computer-readable medium as recited in claim 21, wherein configuring said administrative service to determine that said worker process is failing to operate properly further includes:
configuring at least one user-mode process associated with said worker process to send a message to said administrative service, said message indicating a problem with said worker process.
- 23. The computer-readable medium as recited in claim 22, wherein said at least one user-mode process includes a process selected from a group of processes including said worker process, an in-process application, an out-of-process application, and an ISAPI extension.
- 24. The computer-readable medium as recited in claim 21, wherein configuring said administrative service to determine that said worker process is failing to operate properly further includes:
configuring said administrative service to send a health status request message to said worker process; and configuring said administrative service to determine that said worker process is failing to operate properly if said worker process fails to respond to said health status request message within a defined period of time.
- 25. The computer-readable medium as recited in claim 24, wherein: with said health status request message, configuring said administrative service to determine if there is at least one thread associated with said worker process available to accept a new request.
- 26. The computer-readable medium as recited in claim 21, wherein configuring said administrative service to determine that said worker process is failing to operate properly further includes:
configuring said administrative service to determine that said worker process is failing to operate properly when an operating system informs said administrative service that a handle associated with said worker process has exited.
- 27. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to determine when said worker process needs to be recycled further includes:
configuring said administrative service to determine that said worker process needs to be recycled based on an amount of time that said worker process has been operating.
- 28. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to determine when said worker process needs to be recycled further includes:
configuring said administrative service to determine that said worker process needs to be recycled based on a recycle schedule.
- 29. The computer-readable medium as recited in claim 20, further comprising:
configuring said listener service to track a number of requests handled by said worker process; and wherein configuring said administrative service to determine when said worker process needs to be recycled further includes configuring said administrative service to determine that said worker process needs to be recycled based on said number of requests handled by said worker process.
- 30. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to determine when said worker process needs to be recycled further includes:
configuring said administrative service to determine that said worker process needs to be recycled based on an amount of memory associated with said worker process.
- 31. The computer-readable medium as recited in claim 30, wherein said amount of memory associated with said worker process includes at least one type of memory selected from a group comprising a private memory associated with said worker process and a virtual memory associated with said worker process.
- 32. The computer-readable medium as recited in claim 20, further comprising:
configuring said listener service to track a number of requests handled by said worker process over a defined period of time; and wherein configuring said administrative service to determine when said worker process needs to be recycled further includes configuring said administrative service to determine that said worker process needs to be recycled based on said number of requests handled by said worker process over said defined period of time such that it is determined that said worker process is deemed to have been idle during said defined period of time.
- 33. The computer-readable medium as recited in claim 20, further comprising:
configuring said listener service to identify when there is a current demand for said worker process; and wherein configuring said administrative service to determine when said worker process needs to be recycled further includes only recycling said worker process when said listener service identifies said current demand for said we application.
- 34. The computer-readable medium as recited in claim 20, further comprising:
configuring said administrative service to track a number of times that said worker process has been recycled during a defined period of time; and wherein configuring said administrative service to determine when said worker process needs to be recycled further includes only recycling said worker process when said number of times that said worker process has been recycled during said defined period of time is less than a threshold value.
- 35. The computer-readable medium as recited in claim 34, wherein configuring said administrative service to track a number of times that said worker process has been recycled during a defined period of time includes tracking a number of times that said worker process has been recycled for failing to operate properly during said defined period of time.
- 36. The computer-readable medium as recited in claim 34, wherein only recycling said worker process when said number of times that said worker process has been recycled during said defined period of time is less than said threshold value further includes:
configuring said listener service to reject received requests for said worker process when said number of times that said worker process has been recycled during said defined period of time exceeds said threshold value.
- 37. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to selectively recycle said worker process further includes:
configuring said administrative service to conduct an overlapping recycle of said worker process.
- 38. The computer-readable medium as recited in claim 20, wherein configuring said administrative service to selectively recycle said worker process further includes:
configuring said administrative service to conduct a non-overlapping recycle of said worker process.
- 39. A system comprising:
at least one user-mode worker process configured to handle web requests; a kernel-mode listener service operatively coupled to said worker process and configurable to receive said web request from a client and provide said web request to said worker process; and a user-mode administrative service operatively coupled to said at least one user-mode worker process and said kernel-mode listener service and configured to determine when said worker process needs to be recycled and selectively recycling said worker process.
- 40. The system as recited in claim 39, wherein said administrative service is configured to determine that said worker process is failing to operate properly.
- 41. The system as recited in claim 40, wherein said administrative service is configurable to receive a message from at least one user-mode process associated with said worker process to send, said message indicating a problem with said worker process.
- 42. The system as recited in claim 41, wherein said at least one user-mode process includes a process selected from a group of processes including said worker process, an in-process application, an out-of-process application, and an ISAPI extension.
- 43. The system as recited in claim 40, wherein said administrative service is further configured to send a health status request message to said worker process, and determine that said worker process is failing to operate properly if said worker process fails to respond to said health status request message within a defined period of time.
- 44. The system as recited in claim 43, wherein, with said health status request message is configured to determine if there is at least one thread associated with said worker process available to accept a new request.
- 45. The system as recited in claim 40, wherein said administrative service is configured to determine that said worker process is failing to operate properly when an operating system informs said administrative service that a handle associated with said worker process has exited.
- 46. The system as recited in claim 39, wherein said administrative service is configured to determine that said worker process needs to be recycled based on an amount of time that said worker process has been operating.
- 47. The system as recited in claim 39, wherein said administrative service is configured to determine that said worker process needs to be recycled based on a recycle schedule.
- 48. The system as recited in claim 39, wherein:
said listener service is configured to track a number of requests handled by said worker process; and said administrative service is configured to determine that said worker process needs to be recycled based on said number of requests handled by said worker process.
- 49. The system as recited in claim 39, wherein said administrative service is configured to determine that said worker process needs to be recycled based on an amount of memory associated with said worker process.
- 50. The system as recited in claim 49, wherein said amount of memory associated with said worker process includes at least one type of memory selected from a group comprising a private memory associated with said worker process and a virtual memory associated with said worker process.
- 51. The system as recited in claim 39, wherein:
said listener service is configured to track a number of requests handled by said worker process over a defined period of time; and said administrative service is configured to determine that said worker process needs to be recycled based on said number of requests handled by said worker process over said defined period of time such that it is determined that said worker process is deemed to have been idle during said defined period of time.
- 52. The system as recited in claim 39, wherein:
said listener service is configured to identify when there is a current demand for said worker process; and said administrative service is configured to only recycle said worker process when said listener service identifies said current demand for said we application.
- 53. The system as recited in claim 39, wherein said administrative service is configured to track a number of times that said worker process has been recycled during a defined period of time, and only recycles said worker process when said number of times that said worker process has been recycled during said defined period of time is less than a threshold value.
- 54. The system as recited in claim 53, wherein said administrative service is configured to track a number of times that said worker process has been recycled for failing to operate properly during said defined period of time.
- 55. The system as recited in claim 53, wherein said listener service is configured to reject received requests for said worker process when said number of times that said worker process has been recycled during said defined period of time exceeds said threshold value.
- 56. The system as recited in claim 39, wherein said administrative service is configured to conduct an overlapping recycle of said worker process.
- 57. The system as recited in claim 39, wherein said administrative service is configured to conduct a non-overlapping recycle of said worker process.
- 58. A method comprising:
initiating at least one web application host process; and subsequently ensuring a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively recycling said web application host process; causing said web application to report unhealthy activity; and timing out said web application host process when deemed to be idle.
- 59. A method comprising:
initiating at least one web application host process; subsequently ensuring a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively pinging said web application host process to determine if there is at least one thread available to accept new work and restarting the host process if said pinging fails; detecting when said web application host process crashes and restarting it if there is a demand for it; and protecting a host server itself from a repeated series of web application host process failures by stopping said web applications assigned to said host process.
- 60. A computer-readable medium having computer implementable instructions for causing at least one processing unit to perform acts comprising:
initiating at least one web application host process; and subsequently ensuring a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively recycling said web application host process; causing said web application to report unhealthy activity; and timing out said web application host process when deemed to be idle.
- 61. A computer-readable medium having computer implementable instructions for causing at least one processing unit to perform acts comprising:
initiating at least one web application host process; subsequently ensuring a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively pinging said web application host process to determine if there is at least one thread available to accept new work and restarting the host process if said pinging fails; detecting when said web application host process crashes and restarting it if there is a demand for it; and protecting a host server itself from a repeated series of web application host process failures by stopping said web applications assigned to said host process.
- 62. A system comprising:
memory; and logic operatively coupled to said memory and configured to initiate at least one web application host process, and subsequently ensure a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively recycling said web application host process; causing said web application to report unhealthy activity; and timing out said web application host process when deemed to be idle.
- 63. A system comprising:
memory; and logic operatively coupled to said memory and configured to initiate at least one web application host process and subsequently ensuring a health of said at least one web application host process by accomplishing at least one of the following acts:
selectively pinging said web application host process to determine if there is at least one thread available to accept new work and restarting the host process if said pinging fails; detecting when said web application host process crashes and restarting it if there is a demand for it; and protecting a host server itself from a repeated series of web application host process failures by stopping said web applications assigned to said host process.
RELATED PATENT APPLICATIONS
[0001] This U.S. Patent Application is a Continuation-in-Part (CIP) application and claims the benefit of priority of co-pending U.S. patent application Ser. No. 09/878,950, filed Jun. 11, 2001.
[0002] This U.S. Patent Application further claims the benefit of priority from, and hereby incorporates by reference the entire disclosure of, co-pending U.S. Provisional Application for Letters Patent Serial No. 60/366,795, filed Mar. 22, 2002, and titled “Methods And Systems For Ensuring Health And/Or Availability Of Web Applications”.
[0003] This U.S. Patent Application is related to co-pending U.S. Application for Letters Patent Serial No. __/______ (Attorney Docket No. MS1-1151US), filed ______, and titled “An Improved Web Server Architecture”.
[0004] This U.S. Patent Application is related to co-pending U.S. Application for Letters Patent Serial No. __/______ (Attorney Docket No. MS1-1267US), filed ______, and titled “Web Garden Application Pools Having a Plurality of User-Mode Web Applications”.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
09878950 |
Jun 2001 |
US |
Child |
10377148 |
Feb 2003 |
US |