ADPlus
ADPlus is another debugging tool that will help you troubleshoot a process or an application that hangs or crashes. ADPlus is supported on all versions of Windows 2003, XP, Win2K, and NT and requires Windows Script Host (WSH) 5.6 or later. ADPlus generates memory dumps and logs files that contain debugging information. You can also use ADPlus instead of userdump.exe to obtain memory dumps of processes. The most recent version, ADPlus 6.3.11, released March 1, 2004, includes support for Itanium (formerly code-named Merced) servers and Longhorn (Client Preview version, build 4051). ADPlus is part of the Microsoft Debugging Tools for Windows, which you can download at http://www.microsoft.com/whdc/devtools/debugging/default.mspx.
Before you run ADPlus, always verify that Exchange services are indeed in a hung or frozen state. A hanging server can exhibit a variety of symptoms, including the following:
- Outlook clients can't connect. In some hanging scenarios, existing client connections are unaffected. Try connecting to a mailbox on the server to confirm that the server is frozen.
- Processor utilization is high.
- Exchange services go into an uncontrolled state, and you can't start or restart them.
- ESM is unresponsive.
Before running ADPlus, make sure that network problems aren't causing the Exchange problems. Ping the server to verify that it's reachable. Also, verify that your Exchange GC is online and that no DSAccess problems exist.
ADPlus runs in two modes: hang mode and crash mode. You can use ADPlus in hang mode to troubleshoot an unresponsive process or a process that's using 100 percent of your CPU. While running in this mode, ADPlus generates memory dumps for all active processes. To generate these memory dumps, ADPlus gains exclusive access to the processes, so clients will be unable to connect. For this reason, don't use ADPlus in hang mode on a production server that's online and functioning as usual.
You can run ADPlus in crash mode to troubleshoot applications that terminate unexpectedly. Unlike hang mode, crash mode requires that ADPlus be running in crash mode before the crash occurs. When ADPlus is running in crash mode, a debugger remains attached to each process that you specify on the command line.
After you run ADPlus on your server, send the dump files to PSS for analysis, then reboot the server to clear the hanging processes. The dump files that ADPlus generates contain information that isn't easy for the average user to understand. PSS engineers have special tools and training that enable them to interpret the contents of debug files.
When a production Exchange server hosting several thousand users goes into a hung state, the Help desk is usually swamped with calls, which puts a lot of pressure on support personnel. Under pressure, people are more likely to make mistakes. To alleviate this pressure and reduce the time needed to diagnose problems, I recommend the following best practices for using ADPlus to debug your Exchange servers.
Use batch files to automate data collection. Using ADPlus to generate dump files for Exchange processes requires quite a few keystrokes. I recommend that you create batch files to automate the collection process. Listing 1 shows a sample batch file that creates dump files for the Store, System Attendant, Microsoft Search, Microsoft IIS, and Exchange management processes. In this example, I used ADPlus with the -pn switch to specify the name of the process to be dumped. You'll have downtime for each process you run ADPlus against because ADPlus gains exclusive access to a process to generate a dump file.
Run ADPlus against IIS. Because IIS and Exchange are tightly integrated, you need to run ADPlus against IIS. Type the command
adplus -iis
to retrieve debugging information that you can use to troubleshoot Exchange protocols (e.g., SMTP, IMAP, POP) that IIS manages and to troubleshoot Outlook Web Access (OWA) client connection problems.
Ensure that enough free space is available for ADPlus dumps. The -o switch, which Listing 1 also shows, directs ADPlus to create dump files in a specified folder. Dump files can be quite large, so I recommend that you create them in a location other than the system drive. For each ADPlus session, the tool creates a unique folder name that contains the date and time the dump was captured. This feature prevents you from overwriting dump files. If a server experiences multiple hangs, you can run ADPlus for each incident and send a collection of dump files to Microsoft to identify a common root cause. Figure 2, shows the folder structure for a sample batch file execution.
Windows Task Manager and ADPlus
When a process is consuming 100 percent of the CPU, you can use ADPlus to generate a dump for that process, based on the process identifier (PID). To obtain the PID, open Task Manager (Start, Run, taskmgr.exe) and at the Processes tab select the Show processes from all users check box to view all the active processes on your server. Under the View menu, choose Select Columns to add the PID column to your Task Manager view, as Figure 3 shows. You must use Task Manager to retrieve the correct PID because the server assigns the PID for a process when the process starts, but the PID changes when a server reboots or when the service associated with a process is restarted. Using Task Manager will ensure that you retrieve the current PID. After you obtain the PID, you can generate a dump file for the process that's hogging the CPU by entering
adplus -hang -p xxxx
where xxxx represents the offending process's PID.
VaDump
VaDump is a Microsoft Windows 2000 Resource Kit utility (it also runs on Windows 2003) that lets PSS analyze a process's virtual address memory in detail. VaDump provides the following memory information about a process's virtual address memory use:
- each address, along with its size, state, protection, and type
- total committed memory for the image, the .exe file, and each .dll file, including system .dll files
- total mapped-committed, private-committed, and reserved memory
- *information about the working set and about paged and nonpaged pool usage
Unlike running ADPlus, running VaDump doesn't result in any server downtime. I recommend that you check with PSS before running VaDump; many command switches are available for VaDump, and PSS might require that you use the tool with specific switches. Web Figure 1 (http://www.winnetmag.com/microsoftexchangeoutlook, InstantDoc ID 42878) shows the switches you can use with VaDump.
Prev. page
1
[2]
3
next page