martes, 6 de diciembre de 2011

Message queue in Exchange 2007 (Author: Nathan Winters )

  • Author: Nathan Winters (Excellent information)

Brief

This article investigates message queues in Exchange 2007. I begin by highlighting the differences in architecture between Exchange 2003 and 2007 in particular, discussing the fact that Exchange 2007 uses a queue database. I then discuss the new look queue viewer in Exchange 2007 and what it actually does! Finally I take a look at how the queue viewer is built on PowerShell and suggest some ways in which that could be useful!


Queue Theory

So where does this database fit in? Well as mentioned briefly above, all queue activity now occurs in a new ESE database. The main database file is called mail.que and by default can be found here:

C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue


Figure 6: Folder containing queue database files

The other files are in the locations as described below:

  • Trn.chk - The checkpoint file.
  • Trn.log - The current transaction log file.
  • Trntmp.log - The next provisioned transaction log file that is created in advance.
  • Trnnnn.log - Other transaction log files that are created when Trn.log reaches its maximum size.
  • Trnres00001.jrs - The Reserve log file.
  • Trnres00002.jrs - The Second Reserve log file.
  • Temp.edb – Temp DB used to verify database schema on start-up.

You might wonder what happens with the logs in this scenario. Well, they are configured for circular logging with transaction logs being deleted after they have been committed.

Just before we move on to another area, it is worth stating how to move the queue databases. One important reason for moving the Queue DB and logs is performance. Another slightly less well known reason is that the drive on which the Queue DB and logs are stored must have 4GB or more free space otherwise the server will apply back pressure and start slowing the flow of messages!

When moving the DB, the usual rules for splitting transaction logs and DB files apply. To move the databases you must edit the EdgeTransport.exe.config file which by default is located at the location below and then stop and restart the msexchangetransport service:

C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config

The key thing to bear in mind before editing the config file is that the parent directory has the correct permissions as set up below; that way the directory will be created for you:

  • Network Service: Full Control
  • System: Full Control
  • Administrators: Full Control

The relevant lines are shown below. To move the database, you should edit the line containing “QueueDatabasePath” and to move the logs, you should edit the line containing “QueueDatabaseLoggingPath”. You can see in Figure 7 that I have moved my DB and logs to H:


Figure 7:
Editing the EdgeTransport.exe.config file (click to view a larger image)

Having looked at the Database it is now time to understand what it contains. There are various different queues:

  • Submissions: Used by the categorizer to gather all messages that have to be resolved, routed, and processed by Transport agents.
  • Poison Message: The poison message queue is a special queue that is used to isolate messages that are detected to be potentially harmful to the Exchange 2007 system after a server failure.
  • Remote Delivery: Remote delivery queues hold messages that are being delivered to a remote server by using SMTP.
  • Mailbox Delivery: The mailbox delivery queues hold messages that are being delivered to a mailbox server by using encrypted Exchange RPC.
  • Unreachable Destination: Each transport server can have only one Unreachable queue. The Unreachable queue contains messages that cannot be routed to their destinations.




http://www.msexchange.org/articles_tutorials/exchange-server-2007/management-administration/exchange-2007-message-queues.html

No hay comentarios:

Publicar un comentario