Boswell's Q&A

Hurry Up and Wait

Getting Exchange to restart can be a long waiting game for one admin.

Bill: I know that the Microsoft gospel is never to run Exchange, SQL Server, etc. on a domain controller. However, we have a small shop and we can't afford to have separate machines. Exchange 2003 appears to run fine on our Windows Server 2003 domain controllers except when we reboot (a frequent event with all the security patches that come out.)

It takes a very long time to shut down the Exchange server that is also a domain controller. The restart is also slow and Exchange services do not always start automatically. I can start them manually and they run fine.

I am assuming that Exchange is trying to start before some other services have started? Is there a work around for this problem? Does the Global Catalog play a part in this as well?
— Lynne

Get Help from Bill

Got a Windows or Exchange question or need troubleshooting help? Or maybe you want a better explanation than provided in the manuals? Describe your dilemma in an e-mail to Bill at mailto:[email protected]; the best questions get answered in this column.

When you send your questions, please include your full first and last name, location, certifications (if any) with your message. (If you prefer to remain anonymous, specify this in your message but submit the requested information for verification purposes.)

Lynne: Microsoft has documented the slow shutdown in Knowledge Base article 829361, "Exchange Server 2003 Computer Takes Longer Than You Expect to Shut Down." In essence, there's a race condition between the Active Directory services and the Exchange services that causes the slow shutdowns you've been experiencing.

KB 829361 recommends manually shutting down the Exchange services before shutting down the server, which you can do with a batch file. The following batch file shuts down the Exchange services then initiates an immediate shutdown followed by a restart:

stopExchange.cmd
@Echo You're about to stop all Exchange services and restart this server. Press Ctrl-C to abort.
pause
net stop msexchangeis
net stop msexchangemta
net stop msexchangesa
net stop msexchangesrs
shutdown /t 0 /r

I ordered the services to avoid a dependency prompt. You would not include the MSExchangeSRS service unless the server were running Site Replication Services in a mixed-mode organization. You may need to add POP3svc and IMAPsvc if you use these features on your Exchange server. You'd need admin rights on the server to run the batch file, of course.

Following restart, you can run a similar batch file to start the Exchange services:

restartExchange.cmd
net start resvc
net start msexchangemta
net start msexchangesa
net start msexchangeis
net start msexchangesrs

If one of services is already running, that line item in the batch file will simply error out and the batch file will proceed to the next service.

To automate the restart verification, run the batch file as a Startup script in a Group Policy Object linked to the Domain Controllers OU. Target the GPO to members of the Exchange Domain Servers group to avoid getting start-up errors on your other domain controllers.

Hope this helps!

About the Author

Contributing Editor Bill Boswell, MCSE, is the principal of Bill Boswell Consulting, Inc. He's the author of Inside Windows Server 2003 and Learning Exchange Server 2003 both from Addison Wesley. Bill is also Redmond magazine's "Windows Insider" columnist and a speaker at MCP Magazine's TechMentor Conferences.

comments powered by Disqus
Most   Popular