Simply put, a queue is a temporary holding location for messages waiting to be processed. When there is a problem, messages will remain in the queue until the problem is resolved or until the Administrator takes appropriate action from the Queue Viewer (explained later).
In the previous Exchange version, each SMTP virtual server had its own separate queue on an NTFS partition. In Exchange 2007 this has changed. With the introduction of server roles now only Hub Transport and Edge Transport servers have queues that hold messages while they are processed for routing and delivery.
Exchange uses an ESE database as the physical queue storage. The main database file is called mail.que and is stored in the \Microsoft\Exchange Server\TransportRoles\data\Queue folder.
Figure 1 - The physical location of the Queue files
It sits there along with a bunch of others files, namely:
- Tmp.edb - A temporary database used to verify the database schema on initialization.
- TrnNNNNNNNN.log - Subsequent transaction log files created when trn.log is full.
- Trn.chk - The transaction checkpoint file.
- Trn.log - The current transaction log file.
- Trnres00001.jrs - The first transaction reserve log file.
- Trnres00002.jrs - The second transaction reserve log file.
Although not shown in the image above, you could also have a file called trntmp.log which is a temporary holding for the next transaction log file to be created.
If you wanted to change the location of where the database and log files are stored on disk, navigate to \Microsoft\Exchange Server\Bin and open EdgeTransport.exe.config in a text editor. The value of the QueueDatabasePath and QueueDatabaseLoggingPath keys are set to the default location on disk. Change these to whichever location you wish (usually another physical disk) and save changes. Performance would be the primary reason for changing the location of the database and log files.
It's also important to note that you need to have at least 4GB of free space on the disk which holds the database and log files; otherwise a system resource monitoring feature of the Exchange Transport service called "back pressure" will be applied. This feature monitors system resources and stops accepting new connections and messages if the threshold is exceeded, which prevents the system from being completely overwhelmed and still able to process and deliver the current set of messages. Once the system resources have been restored to a normal level, Exchange starts accepting new connections and messages again.
Types of Exchange Queues
Exchange 2007 uses the following types of queues:
Submission Queue The submission queue is used by the categorizer to temporarily store all messages pending further action by the Transport agents - messages that should be resolved, routed and processed. Each transport server has one submission queue; all messages that enter the transport server go to the submission queue for processing. Messages that are in the submission queue cannot be in any other queues at the same time.
Mailbox Delivery Queue The mailbox delivery queue holds messages that are being delivered to a mailbox server by using encrypted Exchange RPC. Only Hub Transport servers have mailbox delivery queues. They temporarily store messages that are being routed to the destination mailbox on a remote mailbox server in the same organization as the Hub Transport server.
Remote Delivery Queue Hub Transport servers and Edge Transport servers can have remote delivery queues; they hold messages temporarily while they are routed to remote destinations using SMTP. These remote destinations can be an external domain, SMTP connector, or a destination which is outside the scope of the Active Directory site in which the Hub Transport server is located.
Poison Message Queue The poison message queue holds any messages that are considered to be problematic after there has been a server failure. All messages in this queue are suspended and can be deleted manually. Each transport server has one poison message queue.
Unreachable Queue The unreachable queue holds messages that cannot be routed to the intended destination. Each transport server has one unreachable queue.
Viewing Queues with Queue Viewer
You can view message queues using the Queue Viewer, accessible from Exchange Management Console | Toolbox | Queue Viewer or as a separate snap-in from the MMC console.
Figure 2 – The Queue Viewer (Exchange Management Console)
The ability to add multiple snap-ins to a custom MMC console means you can view the queues of multiple servers at the same time - simply add a new Queue Viewer snap-in and connect to the appropriate server.
Figure 3 - The Queue Viewer (MMC console)
The Queues tab is where you manage the different Queues, keep an eye on the status and message count and take the following actions on a selected Queue:
Suspend queue Temporarily disable the delivery of currently queued items. Messages will still reach the queue but they will not be able to leave.
Resume queue Allows currently queued items to resume delivery once again.
Retry queue A retry timer is set whenever a connection to the next hop fails and once the allotted time has been reached the connection is retried. The "Retry queue" action overrides this functionality and immediately forces the connection to the next hop to be attempted.
In the Messages tab, you can use the filter to filter out messages by, amongst others, Size, From Address, SCL level, Source IP, Subject, Status, and Message-ID. The page is refreshed automatically and the filter applied immediately when you select the chosen settings.
Once you have found a message or set of messages you want to take action on, you can:
Suspend message Temporarily prevent the delivery of the selected message. Using this action you can suspend messages to all recipients in a particular queue, or all recipients in all queues.
Resume message Resumes the delivery of a suspended message.
Remove message Permanently deletes the message from the queue. You can select to remove the message and notify the sender by means of an NDR - to do this choose "(With NDR)" - or simply remove the message without notifying anyone - to do this select "(Without NDR)".
Export message Use this action to copy the selected message to a specified directory on disk. When doing this the message is not deleted from the queue. Before exporting the message you must of course suspend the message so that it does not continue with normal delivery.
After having read this article you should have a better understand of Exchange 2007 queues and how they differ from previous versions. This should be a good starting point for you to begin managing queues in Exchange 2007.
Using the Queue Viewer to Manage Queues