Transaction Locking

From Acacia Support Wiki
Jump to navigation Jump to search

Transaction Locking is done automatically during workflow processing. As soon as an action is selected, the following occurs:

  • Begin a database transaction.
  • Save the currently displayed record.
  • .. Various GF Code ..
  • If any error occurs
    • Rollback the transaction (releases locks immediately).
    • Display an error message and stack trace.
    • Exit processing.
  • Commit the transaction.
  • Exit processing.

Problems can occur in the following cases:

  • SaveToDatabase() is called which will finalise the current transaction
  • All subsequent GetValuesUsingSQL() calls start a new transaction that dead-locks itself. The fix is to replace these calls with ExecuteSQL().