Extensible Storage Engine (ESE), also called JET Blue, is the core technology that is used for storing emails, attachments, and other mailbox data in the EDB file. The Exchange JET engine errors are issues that are specifically related to the ESE. Such errors can occur if the storage engine encounters a problem due to hardware, software, or database issues.
The Exchange ESE and JET engine errors can dismount EDB files, disrupt the mail flow, or even corrupt the data. Therefore, resolving them immediately is crucial. In this guide, we will discuss why you are seeing these errors, how to identify them, and how you can fix Exchange JET errors.
Microsoft Exchange JET engine errors are mainly encountered when damage occurs at the database or hardware level in the Exchange Server. Top reasons for getting Exchange ESE and JET engine errors are:
Knowing these reasons allows you to fix Exchange JET Engine errors and also helps to prevent issues like database dismount and Exchange dirty shutdown.
There are multiple variants of the Exchange ESE and JET engine errors. Some of the most common ones are:
- 1022 JET_err DiskIO – It occurs when the disk input/output process restricts Exchange Server from accessing pages in the EDB.
- 1019 JET_err Page NotInitialized – Such an error occurs when the requested page is either empty or uninitialized in the Exchange database.
-1018 JET_err Read VerifyFailure – It occurs when an incorrect checksum or page number is encountered when the ESE is reading the databse pages.
-501 JET_errLogFileCorrupt – Occurs when the JET engine detects physical corruption in a transaction log file due to abrupt system crashes or hard disk bad sectors.
-1216 JET_errAttachedDatabaseMismatch – This error is seen when ESE detects that the log details do not match the header information in the EDB file.
In addition to these, there are multiple ESE errors, and most of them require a unique solution. Therefore, before you fix Exchange JET engine errors, it's important that you know which ESE error you are dealing with.
Knowing the exact error you are getting makes finding the best method for the ESE errors simpler. To get details about the error, follow these steps:
Step 1: Go to the Windows Event Viewer and look for the events related to the Exchange ESE errors. The event will give you information like the error code, database name, specific file involved, etc.
Step 2: Then, based on the error in the events, look for the related Exchange log files to better understand the problem and fix Exchange JET errors.
In addition to the above steps, if the database is dismounted from the server, you can also use the eseutil /mh command. This will give additional information about the database, like the current state (Clean or Dirty Shutdown).
Since there can be multiple error codes for the Exchange ESE or JET engine errors, you have to choose the methods based on the error type.
If the JET engine errors indicate database corruption, using eseutil is the easiest way to fix the ESE error. In most cases, uncommitted logs are the primary reason for corruption. Eseutil tool allows you to replay the database logs and restore the EDB to a healthy state.
Step 1: First, dismount the database (if it is mounted and active) using this command:
Dismount-Database -Identity "YourDatabaseName"
Step 2: If you have complete log files, replay them using this command:
eseutil /r <LogPrefix> /l "<LogFolderPath>" /d "<DatabaseFolderPath>"
Step 3: Check the state of the database with this command:
eseutil /mh <DatabaseFolderPath>
If it is in a clean state, your database is healthy again, and you can mount it. But if the state is still showing as Dirty Shutdown, then the corruption is severe. In this case, I suggest you use a backup to restore the data. However, if a backup is not available, you must use hard recovery./p>
Only use this option as a last resort. The hard recovery will delete all the damaged pages from the EDB file, causing data loss. Before moving forward, make a copy of the complete EDB file or safeguard selective data using an EDB to PST converter tool. Then, use the following steps to repair the database.
Step 1: Run eseutil command with /p switch.
eseutil /p <DatabaseFolderPath>
Step 2: After using the /p switch, you must defragment the database with this command:
eseutil /d <DatabaseFolderPath>
Step 3: Finally, perform an integrity check using New-MailboxRepairRequest
Note: If you are using Exchange Server 2010 or earlier versions, use isinteg cmdlet for the integrity check.
Step 4: Check the database state by running:
eseutil /mh <DatabaseFolderPath>
If it is in a clean state, mount it with this command:
Mount-Database -Identity "<DatabaseName>"
When most of your database header and pages are corrupt, using the eseutil tool will not help. Instead, it may cause permanent data loss. In such a situation, you must focus on saving your data from the EDB file. For that, I prefer and recommend using a professional Exchange database recovery tool.
Kernel for Exchange Server is an enterprise-grade repair & recovery tool. It can recover user mailboxes, public folders, and other EDB file content and save the data to an Outlook PST file.
Exchange ESE or JET Engine is crucial for communication between server and database. Any issue with it will break the communication flow. To prevent it, monitor hardware latency and health, focus on regular VSS backups, and install a powerful antivirus tool. In case of corruption, use ESEUTIL tool to fix Exchange JET Engine errors and repair the database. But if that doesn’t work, try the Kernel for Exchange Server for complete recovery with minimal data loss.
Ans. There is no single solution to fixing all the Exchange ESE or JET engine errors. You have to identify the root cause of the error and, based on that, choose the appropriate method.
Ans. The JET engine errors are mainly caused by an issue with the database. It could happen due to a hardware issue, lack of permissions, missing log files, or a corrupted database.
Ans. To fix 1605 JET_errKeyDuplicate (Illegal Duplicate Key), use the eseutil tool with the soft recovery (/r) switch.