Changes between Version 21 and Version 22 of MapGuideRfc78
- Timestamp:
- 07/15/09 08:51:25 (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MapGuideRfc78
v21 v22 45 45 == Proposed Solution == 46 46 47 A new class of MgTransaction will be added to represent a transaction to be performed in a data store.47 A new class of !MgTransaction will be added to represent a transaction to be performed in a data store. 48 48 {{{ 49 49 /// \brief … … 76 76 Changes to Feature Service 77 77 78 ExecuteSqlQuery() and ExecuteSqlNonQuery() must use the same underlying connection on which the transaction started. So MgTransaction instance is passed in as parameters for both of these two methods. TheMgTransaction implementation can return the undelying connection.78 !ExecuteSqlQuery() and !ExecuteSqlNonQuery() must use the same underlying connection on which the transaction started. So !MgTransaction instance is passed in as parameters for both of these two methods. The !MgTransaction implementation can return the undelying connection. 79 79 80 80 {{{ … … 119 119 }}} 120 120 121 Timeout configuration for MgTransaction121 Timeout configuration for !MgTransaction 122 122 123 If an MgTransaction has been started but hasn't been committed or rollbacked within the timeout, the transaction will be automatically rollbacked. If you call Commit() or Rollback() after timeout, an exception will be thrown reminding that the transaction has been timeout.123 If an !MgTransaction has been started but hasn't been committed or rollbacked within the timeout, the transaction will be automatically rollbacked. If you call Commit() or Rollback() after timeout, an exception will be thrown reminding that the transaction has been timeout. 124 124 125 Two items will be added into WebConfig.ini for transaction timeout setting. If the transaction hasn't been committed or rollbacked within thirty minutes, it will be automatically rollbacked.126 125 Two items will be added into !webconfig.ini for transaction timeout setting. If the transaction hasn't been committed or rollbacked within thirty minutes, it will be automatically rollbacked. 126 {{{ 127 127 DataTransactionTimeout = 1800 128 128 DataTransactionTimerInterval = 300 129 130 Bind MgTransaction to FDO connection129 }}} 130 Bind !MgTransaction to FDO connection 131 131 132 132 The transaction has to be bound with the underlying FDO connection where it starts during its life circle. The underlying FDO connection will be kept used by the transaction until the call of either Commit() or Rollback(). The implementation of MgTransaction should be able to return the underlying connection. … … 136 136 This is a new API, so API documentation need to be updated. However, it will not affect the existing application if you don't use it at all. 137 137 138 This new API is designed for sql statement execution. You have to use the API with ExecuteSqlQuery() orExecuteSqlNonQuery() within the transaction.138 This new API is designed for sql statement execution. You have to use the API with !ExecuteSqlQuery() or !ExecuteSqlNonQuery() within the transaction. 139 139 140 140 == Test Plan ==