Table of Contents | ||||
---|---|---|---|---|
|
Overview
Implementation of Transaction Rollback processing and rollback began in AGRIS 10.3.1 (issue AGR-52033) with the Microsoft SQL (MSSQL) database only.
...
- Accounts Payable Voucher Import
- Accounts Receivable Invoice Import
- Accounts Receivable Payment Import
- Commodity Actual Weights & Grades Import
- Commodity Apply From Storage
- Commodity Delivery Sheets
- Commodity Freight Expenses
- Commodity Reverse Tickets
- Commodity Void Settlements
- Inventory Reverse Invoice Entry
- Inventory Delivery Ticket
- Name/Address Import
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.
...