If you have a PH account, you can customize your PH profile.
Theme Graphic
Theme Graphic

Exchange Server Recovery | PST Recovery

Stellar’s Email Recovery Solutions encompasses a wide range of software for almost any data loss situation ranging from accidental deletion...

Subscribe

Author

Archive

Open 2010

Tags

Posted on Monday, February 08, 2010 at 9:08 PM

How to Solve 'JET_errDatabaseDirtyShutdown' Error?

If an Exchange Server database doesn't undergo proper shutdown, it remains attached to its associated transaction log stream. Exchange identifies this state of database as 'Dirty Shutdown'. This simply means all the data from the transaction log stream has not securely committed to the database files. You can examine the database state using eseutil/ mh command that examines the database header information. At next startup, Exchange detects this problem and applies the required logs to the database. In this situation if you remove the transaction logs, the database loses the ability to mount and cannot be restored unless you apply a backup or use some Exchange Server Repair utilities to repair it.

As one of the practical problems of such problems, you may find an Exchange database failing to mount. Also, you receive an error that reads similar to below:

Operation terminated with error -550 JET_errDatabaseDirtyShutdown, Database was not shutdown cleanly. Recovery must first be run to properly complete database operations for the previous shutdown

The error indicates that you cannot access Exchange database.

Cause

Error 'JET_errDatabaseDirtyShutdown' occurs when database exists in improper shutdown or inconsistent state. It doesn't always mean database corruption, but might show that the database requires log files to be replayed.

Another error 'JET_errDatabaseInconsistent' also has the same numeric value as of the above mentioned error.

Solution

To solve the depicted issue, you need to implement the following measures:

1.Run eseutil /r for the corrupted database that allows playing the transaction log files 2.If this doesn't help, restore from the last online backup if available 3.In case no suitable backup is present, you can run run eseutil /p command, followed by eseutil /d to defragment the database

eseutil /p is a hard repair command and checks each 4 KB database page for errors. If it finds errors that it cannot correct, it simply discards the page and proceeds further. Thus the command can cause serious data loss. To avoid this, you are suggested to use a safer Exchange Repair program. The EDB Repair utilities scan the corrupted database and repair it using powerful, yet safe, algorithms.

Exchange Repair Tool is a reliable utility that repairs corrupted Exchange database and restores the mailboxes in *.pst files. The Exchange repair software features selective mailbox recovery. The easy to use EDB Repair utility supports Exchange Server 5.5, 2000, 2003, and 2007. The software is compatible with Windows 7, Vista, XP, 2003, and 2000.
Bookmark: Submit To Digg Submit To reddit Submit To del.icio.us Bookmark With StumbleUpon Bookmark With FaceBook Bookmark With Google Bookmarks   Share: Share By Email By Email

1 comments on "How to Solve 'JET_errDatabaseDirtyShutdown' Error?"
Posted by spian on Monday, March 08, 2010 at 4:59 AM
Image Of Author
Problem in Opening offline edb file
Hi,

I am using Exchange Server 2003 SP2, I am trying to write an application to read the offline exchange .edb and .stm files. For the same i am using Jet Blue API's.

My sequence of API Call's is

JetSetSystemParameter(NULL, JET_sesidNil,JET_paramDatabasePageSize, 4096, NULL); JetCreateInstance(&instance, "instance"); JetInit(&instance); JetBeginSession(instance, &sesid, 0, 0); JetAttachDatabase(sesid,"C:\\Temp\\SP-MS-1.edb",JET_bitDbReadOnly);

All my above calls are executed successfully, except the last function call i.e. JetAttachDatabase(sesid,"C:\\Temp\\SP-MS-1.edb",JET_bitDbReadOnly);

I have found out that when i make the database offline by unmounting the mail boxes, and copy it to the temp folder, in this case, "JetAttachDatabase" returns -544 as an error code, which states that "Soft recovery is intended on a backup database. Restore should be used instead".

So further i use the eseutil.exe with the option as eseutil /r /l /d options on the original location of the database file, the util runs successfully, then i copy this repaired edb file to temp location and then use it my application, now also all the above calls executes successfully, except the last function call "JetAttachDatabase" fails with the error code as -1, which states that "Function Not Yet Implemented".

What am i doing wrong? Anybody with some suggestions would be appreciated.

Thanking all in advance

Leave A Comment
Subject:


Comment:
   Bold Italic Underline          Code Link Image Horizontal Rule


Because you do not have or are not logged in to your Programmer's Heaven account, please enter your name.

Name:


To help prevent comment SPAM, please enter the magic code '863' in the box:




Posting Rules
Please follow these rules when posting comments on blog posts.
  • Do not post anything that is racist, hate speech or of a sexual or adult nature.
  • Do not post or link to anything that infringes copyrighted laws.
  • Posting about security or legal topics is fine so long as you are not glorifying or encouraging people to perform illegal activities.
  • Both the author of this blog and the Programmer's Heaven administrators may delete any inappropriate comments without notice at their own discretion.
 
Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2010 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
bootstrapLabs Logo A BootstrapLabs project.