A weekly maintenance process requires stopping ArcGIS Server and ArcSDE services. After restarting all the services, is it better to restart IIS Admin Service or recycle Default App Pool? I currently run a python script to do the later, with inconsistent results. Sometimes it takes 2 or 4 attempts, or stopping and starting AGS and ArcSDE services again, to get the web services working. I'd like a clear procedure that will work each time.
Restarting the IIS admin service just puts more steps into the restart process for IIS. It may make things easier for you, but I would recommend a more careful restart:
- After stopping ArcGIS Server and ArcSDE, wait until the SOM, SOC, giomgr and gsrvr processes have ALL stopped. The Stop Service command should wait for them, but they might not respond to the stop command.
- Any processes that are still going after you've stopped the service need to be terminated. Otherwise the startup process will get confused and may try to attach those dying processes.
- Make sure your database is up and running ("hot") when you start ArcSDE. It needs the database to get its license.
- Start ArcGIS Server after ArcSDE.
- Recycle the app pool.
Restarting IIS Admin service would be fine, but if your server also has FTP or SMTP services running through IIS they will be brought down too. Recycling the Default App Pool (and any other pools that run your maps!) should be adequate.
Recycling your application pool does not immediately kill the worker processes - it waits for them to complete, or for the timeout period to expire. This would be the reason why they would still be running after a few attempts to recycle.
It will however eventually restart all processes (and without suddenly cutting someone off).
In IIS7 you can see the requests that are still running by clicking on the Worker Process icon in IIS manager, and then double clicking on an individual process.