Changes between Version 4 and Version 5 of FDORfc58


Ignore:
Timestamp:
Apr 17, 2011, 7:43:29 PM (13 years ago)
Author:
leaf
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc58

    v4 v5  
    1 = FDO RFC 58 - Keep It after One Long Transaction is Committed =
     1= FDO RFC 58 - Keep It after One Long Transaction is Committed or Rollbacked =
    22
    33This page contains a request for comments document (RFC) for the FDO Open Source project. 
     
    2222== Overview ==
    2323
    24 The RFC is to add an extra parameter to FdoICommitLongTransaction command to indicate whether to remove the long transaction after is committed successfully or to keep it.
     24The RFC is to add an extra parameter to FdoICommitLongTransaction and FdoIRollbackLongTransaction command to indicate whether to remove the long transaction after it is committed or rollbacked successfully or to keep it.
    2525
    2626== Motivation ==
    2727
    28 Currently after executing FdoICommitLongTransaction command successfully, FDO will merge changes in this long transaction to the parent version and delete the child version. Based on feedback from ArcSDE users, they would like to see a merge operation that does not remove the child. They want to keep using the child version to reuse for further editing work.
     28Currently after executing FdoICommitLongTransaction command successfully, FDO will merge changes in this long transaction to the parent version and delete the child version. FDO will similarly drop changes in a long transaction and remove it after executing FdoIRollbackLongTransaction command successfully. Based on feedback from ArcSDE users, they would like to see a merge/drop operation that does not remove the child. They want to keep using the child version to reuse for further editing work.
    2929
    3030== Proposed Solution ==
    3131
    32 The proposed solution is to add an extra parameter to FdoICommitLongTransaction command to indicate whether to keep the committed long transaction in the version graph and not remove it. Its default value is false. It means removing the long transaction from version graph after it is committed. Changes to class FdoICommitLongTransaction are as follows.
     32The proposed solution is to add an extra parameter to FdoICommitLongTransaction and FdoIRollbackLongTransaction command to indicate whether to keep the long transaction in the version graph and not remove it. Its default value is false. It means removing the long transaction from version graph after it is committed or rollbacked. Changes to class FdoICommitLongTransaction and FdoIRollbackLongTransaction are as follows.
    3333
    3434{{{
     
    6060    ......
    6161};
     62
     63class FdoIRollbackLongTransaction : public FdoIFeatureCommand
     64{
     65public:
     66    /// \brief
     67    /// Returns true if keeping the long transaction after it is rollbacked.
     68    /// Returns false if remove the long transaction after it is rollbacked.
     69    /// Default value for KeepLongTransaction is false.
     70    ///
     71    /// \return
     72    /// Returns true if keeping the long transaction after it is rollbacked.
     73    ///
     74    FDO_API virtual FdoBoolean GetKeepLongTransaction () = 0;
     75
     76    /// \brief
     77    /// Sets whether to keep the long transaction after it is rollbacked.
     78    /// Default value for KeepLongTransaction is false.
     79    ///
     80    /// \param value
     81    /// Input one boolean value to indicate whether to keep the rollbacked
     82    /// long transaction
     83    ///
     84    /// \return
     85    /// Returns nothing
     86    ///
     87    FDO_API virtual void SetKeepLongTransaction (FdoBoolean value) = 0;
     88    ......
     89};
    6290}}}
    6391