IIS 6.0 uses a feature called overlapping recycling to recycle worker processes. In short, the recycling process goes as follows:
- A worker process is marked for recycling (aka tombstoned) by WWW Service Administration and Monitoring or is requested by the application.
- IIS 6.0 creates another worker process to replace the tombstoned worker process. At this point, both worker processes are in memory and perhaps active at the same time.
- New requests are sent to the new worker process while the tombstoned worker process continues to serve requests in its queue, if it can.
- When the tombstoned worker process's queue is empty or a timeout occurs (in the event of a nonresponsive worker process), IIS 6.0 destroys the worker process unless the OrphanWorkerProcess metabase setting is set. In that event, IIS 6.0 keeps the failed worker process around for debugging.
The OrphanWorkerProcess setting has proved very valuable in the field to debug failed worker processes. For more information about this setting, see the IIS 6.0 Help files.