• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 237
  • Last Modified:

Exchange 2007 Queue Database corrupted .que file

Hey there I am hoping to get some clarification on a MS guide I’m following this guide,
The transport service kept failing so I backed up and removed the \Exchange Server\TransportRoles\data\Queue folder and restarted the service and it’s been fine. I have a 100mb  mail.QUE  file that I need to process that contains the queue that was causing the crash (I presume).
I am happy with the “Performing a Recovery of the Queue Database by Using Eseutil”, but I get lost at “Preparing the Existing Queue Database on the Target Exchange Transport Server for Replacement by the Recovered Queue Database”. I do not have anything in the queue at current, what effect will this have on my server, and if it does export a bunch of *.EML files what can I do with these files on the server, can I reprocess them? Someone suggested on http://serverfault.com/questions/74003/import-folders-with-eml-files-into-exchange-2007-mailboxes to “Set up an IIS SMTP server and configure it to use your Exchange server as a smart host”

I currently threw this script together to perform the task at hand:
#path 2
#step 1 Move the queue database to a temporary location on the target Exchange transport server.
#step 2 Perform a recovery of the queue database by using Exchange Server Database Utilities (Eseutil.exe).
#step 3 Perform an offline defragmentation of the queue database by using Eseutil.
#step 4 Prepare the existing queue database on the target Exchange transport server for replacement by the recovered queue database.
#step 5 Start the repaired queue database on the target Exchange transport server.
$server = "TAESERVER"
#Eseutil /P (Repair)
$path = "D:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue_old"
$path2 = "D:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue_old2"
if (!(Test-Path $path2)) { mkdir $path2 }
$path3 = "D:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue_old3"
if (!(Test-Path $path3)) { mkdir $path3 }
$que = "D:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue_old\mail.que"
get-service *exch*
cd $path
Eseutil /r Trn /d. /8
Eseutil /d mail.que
Suspend-Service *MSExchangeTran*
get-service *exch*
#export current messages we want to save I DO  NOT GET THIS BIT
Retry-Queue -Identity "$server" -Resubmit $True
Retry-Queue -Identity "Unreachable" -Resubmit $True
Get-Message -Queue "Unreachable" | Export-Message -Path "$path2"
#In the Queue Viewer, select the Poison Message queue, select a message, and, in the action pane, select Resume.
Get-Message -Queue "Poison" | ft Identity
Resume-Message <IdentityofPoisonMessage>
Get-Message -Queue "Poison" | Export-Message -Path "$path3"
Retry-Queue “$server” -Resubmit $True
Set-TransportServer -MessageExpirationTimeout <LongerTimeOutIntervalIndd.hh:mm:ssFormat>
#process queue
stop-service MSExchangeTransport
#place old que files in defult directory
start-service *exch*
get-service *exch*
#script End

Please advise on what I can expect from this and any tips that I may need to get this to work and if I am taking the right steps to process the  mail.QUE files/folder.
Thanks, in advance

Windows Server 2008
Exchange 2007
Edition : Standard
AdminDisplayVersion : Version 8.1 (Build 240.6)
Joe Danyi
Joe Danyi
1 Solution
Tej Pratap Shukla ~DexterServer AdministratorCommented:
You can defrag mail.que for removing the white spaces. Just follow the steps given below.
1. Know the location of Exchange database. The default location for Exchange 2007 database is
on Hub transport server
C:\Program Files\Microsoft\Exchange Server\TransportRoles\data\Queue

Open in new window

On Edge Transport Server
C:\Program Files\Microsoft\Exchange Server\Bin
After getting at this database location look for the "QueueDatabasePath" and "QueueDatabaseLoggingPath" values.

2. Now stop MSExchange Transfor Server and move the below mentioned file into a different location:

 Mail.que, Trn.chk, Temp.edb, Trn.log, Trnnnn.log, Trnres00001.jrs, Trnres00002.jrs, and Trntmp.log

3. Now restart the MSExchagne Transport Service.

4. Now recover the database. run below mentioned command:
eseutil /d [complete_path_of_moved_location]/mail.que

Open in new window

after successful execution of this command the database would be defragmented.

5. Now reinsert mail.que
Note: After restarting the MSExchange Transport Service a new mail.que file have created, by which mail flow would keep flowing.

run below command to pause the queue:
Net Pause MSExchangeTransport

Open in new window

run this command to make sure whether mail queue is clear or not:

Open in new window

run below command to resubmit the old mail.que file

Retry-Queue -Identity "Unreachable" -Resubmit $True

Open in new window

That's it...

Hope your problem would get resolved.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free tool for managing users' photos in Office 365

Easily upload multiple users’ photos to Office 365. Manage them with an intuitive GUI and use handy built-in cropping and resizing options. Link photos with users based on Azure AD attributes. Free tool!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now