A Few Notes on Rollbacks

A rollback can occur at any time, but synchronization point processing is when it is most likely because that is when changes are committed and when problems making the changes permanent are encountered. Note, however, that rollbacks can also occur at times other than during sync point processing. For example, a failure during a write attempt can cause a rollback before sync point processing. As a result of such a failure, your application will receive a return code indicating one of two situations:
  • A coordinated rollback must be performed on the current work unit. A resource, such as a protected conversation, cannot issue rollbacks (or commits). The resource relies on the application to issue a rollback when one is required.
  • A coordinated rollback has already been performed. A resource manager, such as SFS, automatically issues a rollback.

Other participating resources may have different rules. As an application writer, you must reference the protected resource documentation for the correct application action.

If an application issues a commit but gets a return code indicating a rollback on that commit, this means that all work was rolled back. The application is not required to issue a rollback in this case.