Changes between Version 2 and Version 3 of MapGuideRfc114
- Timestamp:
- 06/09/11 21:54:26 (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MapGuideRfc114
v2 v3 1 = !MapGuide RFC 114 - Extend MapGuide Transaction API to Support Nested Transactions=1 = !MapGuide RFC 114 - Extend MapGuide Transaction API to Support Save Points= 2 2 3 3 This page contains a change request (RFC) for the !MapGuide Open Source project. … … 24 24 == Overview == 25 25 26 This RFC proposes a solution to extend MapGuide transaction API to support nested transactions.26 This RFC proposes a solution to extend MapGuide transaction API to support save points. 27 27 28 28 == Motivation == 29 Due to the constraint of FDO transaction, MapGuide does not support save or nested transaction. Thus it is impossible to partially rollback the work of a transaction. Now with FDO RFC 61(http://trac.osgeo.org/fdo/wiki/FDORfc61) adopted, we can take advantage of these new APIs and enhance MapGuide feature transaction API to control the commit or rollback of a transaction at a lower level. 30 31 == Proposed Solution == 32 The current "!MgTransaction" interface can add the following methods to support save points which keeps consistency with FDO transaction API. 29 33 30 34 31 == Proposed Solution == 35 {{{ 36 ///////////////////////////////////////////////////////////////// 37 /// \brief 38 /// MgTransaction represents a transaction to be performed in a DataStore. 39 /// If the transaction is time out, commit or rollback a transaction will 40 /// result in one exception MgFeatureServiceException thrown. 41 class MG_PLATFORMBASE_API MgTransaction : public MgSerializable 42 { 43 PUBLISHED_API: 44 ...... 32 45 46 /// \brief 47 /// Create a save point in this transaction. 48 /// 49 /// \param suggestName 50 /// Suggested save point name. 51 /// 52 /// \returns 53 /// The actual name used 54 virtual FdoString* AddSavePoint(FdoString* suggestName) = 0; 33 55 56 /// \brief 57 /// Release a specific save point. 58 /// 59 /// \param savePointName 60 /// Save point name. 61 /// 62 /// \returns 63 /// Returns nothing 64 65 virtual void ReleaseSavePoint(FdoString* savePointName) = 0; 66 67 /// \brief 68 /// Rollback the transaction to a specified save point. 69 /// 70 /// \param savePointName 71 /// Save point name. 72 /// 73 /// \returns 74 /// Returns nothing 75 virtual void Rollback(FdoString* savePointName) = 0; 76 ...... 77 } 78 }}} 34 79 35 80 == Implications == … … 38 83 39 84 == Test Plan == 40 41 85 Existing MapGuide unit tests will be expanded to test the proposed enhancements defined above. 42 86 43 87 == Funding / Resources == 44 88 45 Autodesk 89 Autodesk to provide funding/resources