Symbian3/SDK/Source/GUID-358A2262-2C01-509D-AB33-665A9FFF8E04.dita
changeset 13 48780e181b38
equal deleted inserted replaced
12:80ef3a206772 13:48780e181b38
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <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>