Go Premium for a chance to win a PS4. Enter to Win

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 189
  • 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 ~DexterCommented:
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.

Featured Post

Learn Veeam advantages over legacy backup

Every day, more and more legacy backup customers switch to Veeam. Technologies designed for the client-server era cannot restore any IT service running in the hybrid cloud within seconds. Learn top Veeam advantages over legacy backup and get Veeam for the price of your renewal

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