Dynamic Transaction Rollback Recovery

Overview

The server will automatically attempt to recover (repair) a damaged database during a transaction rollback. The database is closed and re-opened. As part of the re-opening the database is recovered.

Implementation Considerations

In the previous version of the Contacts Model the client could explicitly call the CContactDatabase::RecoverL() API for one of the two following reasons:

  • A call to the CContactDatabase::IsDamaged() API indicates the database is damaged

  • An observer receives the EContactDbObserverEventRollback event

In both of these scenarios the dynamic transaction rollback recovery will remove the need to call the CContactDatabase::RecoverL() explicitly.

Note that in out-of-memory conditions transaction rollback recovery cannot be guaranteed.