Symbian3/SDK/Source/GUID-358A2262-2C01-509D-AB33-665A9FFF8E04.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Tue, 20 Jul 2010 12:00:49 +0100
changeset 13 48780e181b38
permissions -rw-r--r--
Week 28 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 1897 and Bug 1522.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-358A2262-2C01-509D-AB33-665A9FFF8E04"><title>Dynamic Transaction Rollback Recovery</title><prolog><metadata><keywords/></metadata></prolog><conbody><section id="GUID-CA80A399-BCBB-5440-84EE-78EE1257D6FF"><title>Overview</title> <p>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. </p> </section> <section id="GUID-1C3D4BA9-08EF-5B6F-92EC-21315A65C6BA"><title>Implementation Considerations</title> <p>In the previous version of the Contacts Model the client could explicitly call the <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-D14DFE6F-90E9-33DD-A108-10A23A8D5B53"><apiname>CContactDatabase::RecoverL()</apiname></xref> API for one of the two following reasons: </p> <ul><li id="GUID-F2AC3B57-CCE9-5EC5-B61A-595054A1CA0F"><p>A call to the <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-BA8E31EE-0AE4-36E2-9AE4-88ADF63C85FE"><apiname>CContactDatabase::IsDamaged()</apiname></xref> API indicates the database is damaged </p> </li> <li id="GUID-C2C76F4D-2D54-54EA-9378-DFBBC6A1FB93"><p>An observer receives the <xref href="GUID-4695321C-1745-3173-8D8E-5FBE89445F55.dita"><apiname>EContactDbObserverEventRollback</apiname></xref> event </p> </li> </ul> <p>In both of these scenarios the dynamic transaction rollback recovery will remove the need to call the <xref href="GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E.dita#GUID-6A6C7B3B-1E44-3731-956D-590A1122FF6E/GUID-D14DFE6F-90E9-33DD-A108-10A23A8D5B53"><apiname>CContactDatabase::RecoverL()</apiname></xref> explicitly. </p> <p>Note that in out-of-memory conditions transaction rollback recovery cannot be guaranteed. </p> </section> </conbody></concept>