Applies to: Exchange Server 2007 SP3, Exchange Server
2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2009-01-27
A queue is a temporary holding location for messages that are waiting to enter the next stage of processing. Each queue represents a logical set of messages that a transport server processes in a specific order.
Microsoft Exchange Server 2007 uses an Extensible Storage Engine (ESE) database for queue message storage. Formerly known as JET, ESE is a method that defines a low-level API to the underlying database structures in Exchange Server. All the different queues are stored in a single ESE database. Queues exist only on servers that have the Hub Transport server role or the Edge Transport server role installed.
Before You Begin
To perform the following procedures, the account you use must be delegated the following:
- Exchange Server Administrator role and local Administrators
group for the target server
To perform the following procedures on a computer that has the Edge Transport server role installed, you must log on by using an account that is a member of the local Administrators group on that computer.
For more information about permissions, delegating roles, and the rights that are required to administer Microsoft Exchange Server 2007, see Permission Considerations.
Changing the Location of the Queue Database
The location of the queue database is controlled by the QueueDatabasePath parameter in the EdgeTransport.exe.config application configuration file that is located in the C:\Program Files\Microsoft\Exchange Server\Bin directory. You can use the following two methods to change the location of the queue database:
- Use the Move-TransportDatabase.ps1 script
Exchange 2007 Service Pack 1 (SP1) includes a new script that you can use to change the location of the Transport database files and transaction log files. This script also moves the database files to the new location that you specify. The following items are important to consider when you use the Move-TransportDatabase.ps1 script to move the database files:
- If the destination drive differs from the source drive,
sufficient space must be available on the destination drive. The
script requires 2 gigabytes (GB) plus the space that is required to
move the existing database file or transaction log files.
- The QueueDatabasePath parameter cannot have the same
value as the IPFilterDatabasePath parameter.
- The QueueDatabaseLoggingPath parameter cannot have the
same value as the IPFilterDatabaseLoggingPath parameter.
- If the destination path does not exist, the script
automatically creates the appropriate path.
- The existing EdgeTransport.exe.config file is automatically
saved as EdgeTransport.exe.config.yyyyMMddHHmmss.old
- If the destination drive differs from the source drive,
sufficient space must be available on the destination drive. The
script requires 2 gigabytes (GB) plus the space that is required to
move the existing database file or transaction log files.
- Manually move the database files
Although we recommend that you use the Move-TransportDatabase.ps1 script to move the Transport database files, you can manually move the database files. The following list describes some important items to consider when you change the location of the queue database:
- If the target directory doesn't exist, it will be created for
you if the parent directory has the following permissions applied
to it:
Network Service: Full Control
System: Full Control
Administrators: Full Control
- The existing queue database files Mail.que and Trn.chk are not
moved. New queue database files are created at the new location
after you save the EdgeTransport.exe.config application
configuration file and restart the Microsoft Exchange
Transport service. The existing database files are left at the old
location. However, they are no longer used.
- If you want to change the location of the queue database but
reuse the existing queue database files, you must move or copy the
database files when the Microsoft Exchange Transport
service is stopped.
- If the target directory doesn't exist, it will be created for
you if the parent directory has the following permissions applied
to it:
Moving the Queue Database to a New Location
To use the Move-TransportDatabase.ps1 script to move the queue database to a new location
-
Start the Exchange Management Shell.
-
At the shell prompt, run the following command. Replace <destination path> with an appropriate path, such as E:\Exchange\Transport\Queue.
Copy Code Move-TransportDatabase.ps1 -QueueDatabasePath: <destination path>
Manually Creating a New Queue Database at a New Location
To create an new queue database at a new location
-
Open the following file by using Notepad:
C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config.
-
Modify the following line in the
<appSettings>
section:Copy Code <add key="QueueDatabasePath" value="<LocalPath>" />
For example, to create a new location for your transaction logs at the location "C:\Queue\QueueDB", modify the QueueDatabasePath parameter as follows:
Copy Code <add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
-
Save and close the EdgeTransport.exe.config file.
-
Restart the Microsoft Exchange Transport service.
-
Verify that the new Mail.que and Trn.chk files are created at the new location.
-
Remove the unused Mail.que and Trn.chk files from the original location.
Manually Reusing an Existing Queue Database at a New Location
To reuse an existing queue database at a new location
-
Create the directory where you want to keep the queue database. Make sure that the correct permissions are applied to the directory.
-
Open the following file by using Notepad: C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config.
-
Modify the following line in the
<appSettings>
section:Copy Code <add key="QueueDatabasePath" value="<LocalPath>" />
For example, to change the location to "C:\Queue\QueueDB", modify the QueueDatabasePath parameter as follows:
Copy Code <add key="QueueDatabasePath" value="C:\Queue\QueueDB" />
-
Save and close the EdgeTransport.exe.config file.
-
Stop the Microsoft Exchange Transport service.
-
Copy the files Mail.que and Trn.chk from the original location to the new location.
-
Start the Microsoft Exchange Transport service.
-
Remove the unused Mail.que and Trn.chk files from the original location.
Changing the Location of the Queue Database Transaction Logs
The location of the queue database transaction logs is controlled by the QueueDatabaseLoggingPath parameter in the EdgeTransport.exe.config application configuration file. You can use the following two methods to change the location of the transaction log files:
- Use the Move-TransportDatabase.ps1 script.
Exchange 2007 Service Pack 1 (SP1) includes a new script that you can use to change the location of the Transport database file and transaction log files. This script also moves the transaction log files to the new location that you specify. The following list describes some important items to consider when you use the Move-TransportDatabase.ps1 script to move the database files:
- If the destination drive differs from the source drive,
sufficient space must be available on the destination drive. The
script requires 2 GB plus the space that is required to move the
existing database file or transaction log files.
- The QueueDatabasePath parameter cannot have the same
value as the IPFilterDatabasePath parameter.
- The QueueDatabaseLoggingPath parameter cannot have the
same value as the IPFilterDatabaseLoggingPath parameter.
- If the destination path does not exist, the script
automatically creates the appropriate path.
- The existing EdgeTransport.exe.config file is automatically
saved as EdgeTransport.exe.config.yyyyMMddHHmmss.old
- If the destination drive differs from the source drive,
sufficient space must be available on the destination drive. The
script requires 2 GB plus the space that is required to move the
existing database file or transaction log files.
- Manually move the database files
Although we recommend that you use the Move-TransportDatabase.ps1 script to move the Transport transaction log files, you can also manually move the files.
The following list describes some important points about how to change the location of the queue database transaction logs:
- If the target directory doesn't exist, it will be created for
you if the parent directory has the following permissions applied
to it:
Network Service: Full Control
System: Full Control
Administrators: Full Control
- The existing queue database transaction log files Trn.log,
Trntmp.log, Trnnnn.log, Trnres00001.jrs, Trnres00002.jrs,
and Temp.edb are not moved. New queue database transaction logs are
created at the new location after you save the
EdgeTransport.exe.config application configuration file and restart
the Microsoft Exchange Transport service. The existing
transaction log files are left at the old location. However, they
are no longer used.
Note: Temp.edb is used to verify the queue database schema when the Microsoft Exchange Transport service starts. Although Temp.edb is not a transaction log file, it is kept in the same location as the transaction log files. - If the target directory doesn't exist, it will be created for
you if the parent directory has the following permissions applied
to it:
Moving the Transaction Log Files to a New Location
To use the Move-TransportDatabase.ps1 script to move the transaction log files to a new location
-
Start the Exchange Management Shell.
-
At the shell prompt, run the following command. Replace <destination path> with an appropriate path, such as E:\Exchange\Transport\Queue.
Copy Code Move-TransportDatabase.ps1 -QueueDatabaseLoggingPath: <destination path>
Manually Creating New Queue Transaction Logs at a New Location
To create new queue database transaction logs at a new location
-
Open the following file by using Notepad:
C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config.
-
Modify the following line in the
<appSettings>
section:Copy Code <add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
For example, to create a new queue database at the location "C:\Queue\QueueLogs," modify the QueueDatabaseLoggingPath parameter as follows:
Copy Code <add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
-
Save and close the EdgeTransport.exe.config file.
-
Restart the Microsoft Exchange Transport service.
-
Verify that the new Trn.log, Trntmp.log, Trnres00001.jrs, Trnres00002.jrs, and Temp.edb files are created at the new location.
-
Remove the unused Trn.log, Trntmp.log, Trnnnn.log, Trnres00001.jrs, Trnres00002.jrs, and Temp.edb files from the original location.
Manually Reusing Existing Queue Transaction Logs at a New Location
Under ordinary circumstances, you should not have to reuse existing transaction logs at a new location. An ordinary shutdown of the Microsoft Exchange Transport service commits all uncommitted transaction log entries to the queue database. Circular logging is used. Therefore, transaction logs that contain previously committed database changes are not preserved. Only disaster recovery scenarios where the Microsoft Exchange Transport service wasn't shut down correctly or a hard disk drive failure would require that you restore and relocate an existing queue database and its existing transaction logs.
To reuse an existing queue database transaction logs at a new location
-
Create the directory where you want to keep the queue database transaction logs. Make sure that the correct permissions are applied to the directory.
-
Open the following file by using Notepad: C:\Program Files\Microsoft\Exchange Server\Bin\EdgeTransport.exe.config.
-
Modify the following line in the
<appSettings>
section:Copy Code <add key="QueueDatabaseLoggingPath" value="<LocalPath>" />
For example, to change the location to "C:\Queue\QueueLogs", modify the QueueDatabaseLoggingPath parameter as follows:
Copy Code <add key="QueueDatabaseLoggingPath" value="C:\Queue\QueueLogs" />
-
Save and close the EdgeTransport.exe.config file.
-
Stop the Microsoft Exchange Transport service.
-
Copy the existing Trn.log, Trntmp.log, Trnnnnn.log, Trnres00001.jrs, Trnres00002.jrs, and Temp.edb files to the new location.
-
Start the Microsoft Exchange Transport service.
-
Remove the unused Trn.log, Trntmp.log, Trnnnnn.log, Trnres00001.jrs, Trnres00002.jrs, and Temp.edb files from the original location.
For More Information
For more information about the queue database, see Managing the Queue Database.
By default the Move-TransportDatabase.ps1 script is located in the following folder on an Exchange 2007 SP1-based computer:
%ProgramFiles%\Microsoft\Exchange Server\Scripts
This script accepts the following parameters:
- -QueueDatabasePath
- -QueueDatabaseLoggingPath
- -IPFilterDatabasePath
- -IPFilterDatabaseLoggingPath
- -TemporaryStoragePath
To move the Transport database or transaction log files, the script performs the following actions:
- The script validates the parameter values.
- The script skips the validation action if the destination path
that is specified is the same as the source path.
- The QueueDatabasePath and IPFilterDatabasePath
values cannot be the same. This is because both locations contain
Trn.chk files.
- The QueueDatabaseLoggingPath and the
IPFilterDatabaseLoggingPath values cannot be the same. This
is because the log files have the same file name.
- The script verifies that 2 GB plus space equal to the size of
the files that must be copied is available. For example, space must
be available that is equal to 2 GB plus the size of the Mail.que,
Trn.chk, and Ipfiltering.edb files.
Note: The script skips the file space verification if the destination path is on the same drive as the source files. - The script skips the validation action if the destination path
that is specified is the same as the source path.
- The script creates folders, as appropriate.
- The script creates the destination folders, if required.
- If the Administrators group, the local System account, or the
Network Services account does not have Full Control permissions to
the destination path, the script adds the permissions.
- If the Administrators group, the local System account, or the
Network Services account has a Deny access rule to the destination
path, the script generates a warning message. In this scenario, the
script does not exit.
- The script creates the destination folders, if required.
- The script stops the MSExchangeTransport service.
- The script backs up the EdgeTransport.exe.config file and names
it EdgeTransport.exe.config.yyyyMMddHHmmss.old.
- The script moves the following files to the destination path,
as appropriate for the command that was used:
- QueueDatabasePath: Mail.que, Trn.chk
- IPFilterDatabasePath: IPFiltering.edb, Trn.chk
- Logging path: Trn*.log, Trnres00001.jrs, Trnres00002.jrs,
Temp.edb
- QueueDatabasePath: Mail.que, Trn.chk
- The script updates the EdgeTransport.exe.config file and then
saves the changes to the file.
- The script starts the MSExchangeTransport service.