Changes between Version 2 and Version 3 of MapGuideRfc114


Ignore:
Timestamp:
Jun 9, 2011, 9:54:26 PM (13 years ago)
Author:
samwang
Comment:

--

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=
    22
    33This page contains a change request (RFC) for the !MapGuide Open Source project.
     
    2424== Overview ==
    2525
    26 This RFC proposes a solution to extend MapGuide transaction API to support nested transactions. 
     26This RFC proposes a solution to extend MapGuide transaction API to support save points. 
    2727
    2828== Motivation ==
     29Due 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 ==
     32The current "!MgTransaction" interface can add the following methods to support save points which keeps consistency with FDO transaction API.
    2933
    3034
    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.
     41class MG_PLATFORMBASE_API MgTransaction : public MgSerializable
     42{
     43PUBLISHED_API:
     44......
    3245
     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;
    3355
     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}}}
    3479
    3580== Implications ==
     
    3883
    3984== Test Plan ==
    40 
    41 
     85Existing MapGuide unit tests will be expanded to test the proposed enhancements defined above.
    4286
    4387== Funding / Resources ==
    4488
    45 Autodesk
     89Autodesk to provide funding/resources