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.
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.