Here are some pretty useful tips straight from the Exchange Setup Test Team for using the Exchange Setup Log to troubleshoot Exchange Setup issues.
Tip #1: Most of the errors in the Setup Log are not really errors!
Yup, as silly as it sounds the vast majority of the "errors" in the log are actually expected return values from other Windows services that happen to come back to us in the form of an Exception, so it goes through Setup’s error handling processes. Most common is the "Error code 0XC0070424 (1060): The specified service does not exist as an installed service." This error shows up every time Setup tries to start, stop, or use a service that isn’t installed (surprisingly, Setup does this a lot for reasons I won’t go into here). For example, Setup will always try to stop the Exchange Information Store service, even if it isn’t installed yet. When Setup does that, the Service Control Manager returns an exception, Setup catches the exception, detects this is an expected exception, and from Setup’s point of view having no service installed is as good as stopping the service, the error is safely ignored.
Here's an example:
[13:43:33] Entering CAtomServices::ScStopAtomServices
[13:43:33] CService::ScGetStatus (f:\titanium\admin\src\libs\exsetup\service.cxx:722)
Error code 0XC0070424 (1060): The specified service does not exist as an installed service.
[13:43:33] CService::ScIsStartedOrStopped (f:\titanium\admin\src\libs\exsetup\service.cxx:760)
Error code 0XC0070424 (1060): The specified service does not exist as an installed service.
[13:43:33] === IGNORING PREVIOUS ERRORS === CServiceManager::ScStopService
(f:\titanium\admin\src\udog\setupbase\tools\svcmgr.cxx:537)
The operation has completed successfully.
There are a number of other similar ignored error cases, such as trying to delete an Active Directory object right before creating it, or remove a file before we copy it. You get the idea.
There is one other "error" that I really want to mention because I constantly see postings in news groups with something to the effect of:
"My Exchange Setup failed! Here’s the error:
[09:42:28] CComBOIFacesFactory::QueryInterface (f:\titanium\admin\src\udog\bo\bofactory.cxx:54)
Error code 0X80004002 (16386): No interface."
All this "error" indicates is that the Setup UI has been exited. That’s it. It’s at the very end of every Setup Log, including all successful Setups and most of the failed ones too. It is in no way a real error or helpful in figuring out what the actual error is (if there is one) and can be safely ignored.
I know it’s dumb that we record an "error" when you correctly exit the UI, but it has to do with the Setup manager code (not written by Exchange) that the Setup processes plug into.
Tip #2: Know what strings to search on to find your way around the Setup Log:
Sections |
Search string |
What’s in there |
Initialization |
****** Beginning |
This is at the start of the log for each instance of Exchange setup |
Configuration summary |
-- ID:62227 -- |
Lots of useful general information here: schema master DC identified, account running setup, install source directory, etc. |
Pre-install on each component |
is set to action |
What action was set on each component, i.e. "install", "remove", "upgrade", etc |
Beginning action on each major component |
-- ID:62208 -- |
Prepare for file copy, build file queues, perform file copy, then configuration of the component (and its subcomponents, if any) |
Skip to the bottom of file copy (server component) |
Entering CAtomDW::ScSetup |
This is where the real action starts to happen. If you’re looking for a failure, chances are it happens during configuration. Skip past the file copy with this string. |
Completed action on each major component |
-- ID:62209 -- |
If a component started (62208), but didn’t finish (62209), you can bet it contains a failure. |
Post setup |
Entering CCompRoot::ScPostSetup |
Mostly service management again |
Tip #3: Use the retry button!
Tip #4: Installing on a cluster
Tip #5: Quickly find fatal errors
Tip #6: Translate those Setup prereq messages for easy posting and faster help!
Running Setup of a localized build of Exchange and hitting a prereq message or error? Want to get help easier and faster in newsgroups and DLs?
Then try running Setup using an English version of Exchange. The messages will be captured in the Exchange Server Setup Progress log in English. Now you can copy and paste from the log into Google, newsgroups, or email, where it is often easier to get help if the messages are in English. Of course, you don’t have to translate into English, it works for any language that particular version of Exchange is localized into.
But wait, you don’t have other languages of Exchange available? Try using the free Eval version of Exchange downloadable from the net (just be sure not to actually install the Eval version!)
Note: This trick only works if you don’t have Exchange installed on that machine already. That’s because Exchange Setup requires you to run Setup using the same language as the Exchange that’s already there. You’ll get a prereq message telling you to use the same language if you try.
Tip #7: Why do we ignore error codes with regards to Device Update?
When we install Titanium, we see the following line w.r.t. Device Update:
[10:36:13] About to uninstall ASP.NET Device Update
[10:36:13] Process created ... waiting (-1)
[10:36:14] Ignoring exit code 0x000645
One might wonder why we ignore the exit code. Well, that’s because we try to uninstall it regardless if it is present or not. In the above case, it’s not present. We don’t want to fail setup because of a Device Update Installation/Un-installation Failure.
When we install Exchange 2003 SP1, we see the following lines w.r.t. Device Update:
[11:14:03] About to uninstall ASP.NET Device Update 2
[11:14:03] Process created ... waiting (-1)
[11:14:06] Ignoring exit code 00000000
[11:14:06] About to uninstall ASP.NET Device Update 3
[11:14:07] Process created ... waiting (-1)
[11:14:07] Ignoring exit code 0x000645
[11:14:07] About to install ASP.NET Device Update
[11:14:07] Process created ... waiting (-1)
[11:14:11] Ignoring exit code 00000000
[11:14:11] ASP.NET Device Update was installed
Here, we first try to uninstall Device Update 2, then uninstall Device Update 3 and then install Device Update 4. In the above case, there was no problem installing DU4 (see the bold italicized line).
However, in the case that Device Update 4 was installed already, we would ignore an error code and continue with setup. The MSIInstaller would throw an error saying it was already installed and we’d also see an Error in the Application Event Viewer, with Source of MsiInstaller whose description is:
Product: Microsoft .NET Framework 1.1 -- Device Update 4.0 -- This Device Update has already been installed.
- The Exchange Setup Test Team (Berg, Batwoo, Alex, Ted and others who we hope will keep participating on this blog!)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.