Table of Contents | ||
---|---|---|
|
Overview
Implementation of Transaction Rollback began in AGRIS 10.3.1 with (issue AGR-52033) with the Microsoft SQL (MSSQL) database only.
...
- Accounts Payable Enter Disbursements
- Accounts Receivable Apply Payments
- Commodity Ticket Import
- Commodity Produce A Settlement
- Commodity Automatic Settlements
- Inventory Stock Additions (Add and Adjust)
- Inventory Invoice Entry (for each split invoice, not all split invoices as a whole)
- Inventory Automatic Invoices
Configuration
Transaction Rollback is enabled by default for all MSSQL datasets
The Transaction (record-in-use) timeout length is configurable in Customize > System Configuration. The default is 5 minutes. Set the value to 0 to disable Transaction Rollback in all datasets.
Business Rules
Please note the following additional business rules regarding AGRIS record locks encountered during a Transaction:
- SQL Transaction Timeout is the amount of time the process will wait for the record lock to clear during a Transaction. If not cleared, the transaction is rolled back.
- F4 on a record-in-use is disabled with the Transaction Rollback feature. In order to continue, either remove the record lock or wait for it to timeout.
- The ability to set the record-in-use timeout length is crucial. Committing an entire transaction at once potentially creates record locks at the database level on those rows not yet committed. This is different than AGRIS record locks. Database locks have the potential to block another user's queries. Because of this the record-in-use timeout should be relatively short - enough time to potentially find the user that can undo the record lock, but not long enough to cause problems for other users trying to access the same data.
Transaction Rollback Example
User is producing a sales settlement. The settlement contains 5 delivery sheets. The settlement will create an A/R Invoice.
...