Exchange 2000 Server introduced the concept of one tool that lets you manage messages, servers, protocol settings, and message queues (along with performing ancillary services such as recipient-address management and message tracking): the Microsoft Management Console (MMC) Exchange System Manager (ESM) snap-in. Unfortunately, the Exchange 2000 ESM has a few weak spots. For example, I've never been satisfied with the ESM's interface for inspecting the contents of message queues. I've never liked that I need to enumerate the contents of a queue to see what's in it--especially if I already know that it contains messages.
In the ESM version that ships with Exchange Server 2003, the queue viewer is greatly improved. The biggest visible improvement is that the Queues object beneath each server object actually combines messages from all protocol virtual servers on that server--no more hunting for the correct queue on servers with several virtual servers. This feature is especially handy for bridgehead servers. When you select a queue, you see the messages that are in it, and you can specify the view's refresh interval, so you now have a good way to keep on top of queue contents without needing to manually refresh or enumerate the queue's contents.
The queue viewer also provides two new buttons. The first button, Disable Outbound Mail, is a lifesaver when you need to quickly stop your servers from sending outbound messages. The most likely cause of such situations: a virus outbreak that you want to prevent from spreading to your customers. This capability can also be handy when you need to stop all outbound messages to prevent a mail loop or the accidental (or purposeful) spread of confidential information. The button doesn't affect the Message Transfer Agent (MTA) or the system's internal queues, which carry items such as public folder replication messages. (You can freeze email in individual queues by right-clicking the queue in question and choosing the Freeze command; the Unfreeze command, as you might expect, resumes email flow for that queue.)
The second button, Find Messages, lets you search for messages in the queue. At long last! Now, when someone tells you, "I sent an important message to Joe Veeblefester and it never arrived," you can find the message even if the user can't remember exactly when he or she sent it or what the subject was. You can also search for messages by status so that you can quickly find messages that have been frozen or are in a retry state.
The most basic functionality of the queue viewer remains unchanged: You can determine whether messages to a particular destination are getting stuck, giving you a valuable way to identify message-flow problems. Knowing in which queue messages are accumulating can help you figure out why they're accumulating. For example, a buildup of messages in a server's local delivery queue indicates that the server isn't accepting local messages and typically means that something is wrong with the Store. With a little experience, you'll come to know what queue lengths are normal for your environment, and you'll be able to quickly identify abnormal conditions.
Exchange 2003 also provides a message queue access API that programmers can use to access more information about the queues and messages; clever developers can use this functionality to build customized queue-viewing tools. For most uses, however, you'll probably find that the functionality in the new ESM is good enough to get the job done.