() Unable to rollback operation # on database . Error: . All future database updates will be rejected.

Details
Product: Exchange
Event ID: 471
Source: ESE
Version: 6.5.6940.0
Component: Microsoft Exchange Extensible Storage Engine
Message: <process name> (<process id>) <storage group name>Unable to rollback operation #<number> on database <name>. Error: <error code>. All future database updates will be rejected.
   
Explanation

Unable to roll back operation on database [database name]: all future database updates will be rejected.

Nothing in this database can be updated until this situation is resolved.

The cause depends on the Error number in the Description section of the event. The most common error codes for Event 471 are listed below.

  • Error -510 = 0xfffffe02 = 4294966786 = JET_errLogWriteFail = Failure when writing to log file. This error has both been seen in the Description of Event 104 and has been more commonly seen with an associated event. Error -510 can be caused by permissions issues, space issues, SAN issues, and other issues affecting reads/writes to the disks.
  • Error -1022 = 0xfffffc02 = 4294966274 = JET_errDiskIO = Disk IO error. The -1022 error is a generic error that appears whenever a disk input/output (I/O) problem prevents Exchange from gaining access to a requested page in the database or to a check file. A disk or controller failure may have occurred, and access to the entire drive has been lost, sometimes temporarily. The controller software or firmware may be out of date. Check the System Log for I/O or drive errors near the time of the 471 Event.
  • Error -614 = 0xfffffd9a = JET_errCheckpointDepthTooDeep = Checkpoint depth is approaching 1024 generations. Before Exchange 2000 SP3, the checkpoint had a maximum depth of 256 log files. In other words, there was a maximum of 256 logs that could not be outstanding and uncommitted to the store at any one time. When the checkpoint became greater than 256 generations, the Jet engine got confused and advanced the checkpoint erroneously. What this meant was that if the database subsequently crashed, ESE would end up starting recovery from the wrong log generation and miss replaying operations (unless you deleted the checkpoint file). Beginning with Exchange 200 SP3, the maximum depth of the checkpoint has been increased from 256 generations to 1024 generations. When the checkpoint approaches 1024, ESE Event ID 471 is reported and ESE generates Error -614 = JET_errCheckpointDepthTooDeep and the database dismounts.
   
User Action

For Error – 510, investigate the root cause of permissions issues, space issues, and other issues affecting reads/writes to the disks.

For Error -1022, check to make sure the drive for the information store files is accessible and that the path for the information store files is specified correctly. If it is, run chkdsk /f /r. If chkdsk does not resolve the issue, examine the permissions on the Exchsrvr folder structure. Make sure that SYSTEM has full control of Exchsrvr and all subfolders on each partition that contains Exchange data. If you still cannot mount the databases, troubleshoot any Windows NT file-level antivirus software running on the Exchange server. Check the System Log for I/O or drive errors near the time of the 471 Event.

For Error -614, erroring out before you actually reach 1024 generations means that you can safely run recovery starting from the checkpoint, since it has not erroneously advanced. However, you should also ensure that you have identified the cause of the error in the first place. It is typically a hung backup, which should be easy to diagnose, or a long-running transaction, which may be less obvious.

Related:

Leave a Reply