Persistate API documentation
DatabaseExceptionOutcome Enumeration
NamespacesPersistateDatabaseExceptionOutcome

[This is preliminary documentation and is subject to change.]

Enumerates the options available to a DatabaseExceptionHandler to affect how the exception is handled.
Declaration Syntax
C#
public enum DatabaseExceptionOutcome
Members
MemberDescription
Retry This option is not valid for DatabaseResultType of UpdateConflict. It makes another attempt at performing the database operation.
Fail This option does not attempt to deal with the problem, but simply rethrows the exception. This will most likely result in application termination.
Rollback This option causes the state of all objects in memory to be rolled back to their state at the start of the current operation execution.
RollbackNoRefresh This option is similar to Rollback, except that when the state of objects is rolled back in memory, the previous state of objects will not be retrieved from the database. Instead, any modified objects which do not hava a previous version in memory will be marked invalid. If this is set in response to an UpdateConflict, the UseRemote functionality is also performed.
ReExecute This option performs the same function as Rollback (and if required, UseRemote) and then re-executes the operation which produced the commit fail. Note that this is different to setting ResultAction.ReExecute, which does not perform a Rollback.
UseLocal This option is permitted only if the DatabaseResultType is UpdateConflict. The handler in this case is called not at the database commit point, but immediately after an object update failed because another (remote) session has already updated the object. This option causes the version of the object in this local session to take precedence, and the update will be reapplied. You can alter the local value, perhaps attempting a value merge, before setting this option.
UseRemote This option is permitted only if the DatabaseResultType is UpdateConflict. The handler in this case is called not at the database commit point, but immediately after an object update failed because another (remote) session has already updated the object. This option causes the version of the object in the remote session to take precedence, and the value of the object in this session will be overwritten with the remote value. This option is set automatically if you set Rollback on an update conflict.
Remarks
Some of these options can only be used for particular fail types. The fail type is given by the DatabaseResultType property of the PersistateDatabaseException supplied to the handler.

Assembly: Persistate (Module: Persistate) Version: 0.6.1.20 (0.6.1.20)