Transaction Considerations (Magic xpa 4.x)
You should carefully consider which is the proper transaction mode and when the transaction should be opened. Some basic rules are explained below.
Menu Tasks
Browser tasks that are opened from a menu task are usually expected to open an independent transaction, which is why the Transaction mode property of the menu task should be set to None.
Handling Each Record Separately
Set the Transaction begin task property to Before Record Prefix if you want to have every record committed immediately when the record is exited, or alternatively to roll back each record modification separately.
Important:
|
Take into consideration that a record level transaction requires the browser client to contact the server upon completion of every record modification.
|
Handling All Task Records as a Single Unit
Set the Transaction begin task property to Before Task Prefix if you wish to have all the modified records committed only when the task is closed, or alternatively to roll back all the modifications of the task records as a single unit.
Important:
|
Setting a browser task with a task level transaction reduces the number of times the browser client is required to contact the server.
|
Subtask Participating in Parent Transaction
Set the Transaction mode task property to Deferred to make all subtask modifications part of the parent task transaction.
The subtask modifications will only be committed when the parent task transaction is committed as specified by the parent task’s Transaction begin property.
|
When a subtask transaction takes part in the parent task transaction, the subtask’s Transaction begin property is ignored and always regarded as Before Task Prefix.
|
Subtask Transaction Independent of Parent Transaction
Set the Transaction mode task property to Nested deferred to have all subtask modifications committed as specified by the subtask Transaction begin property, regardless of the parent task’s transaction.
Important:
|
Currently only modal browser tasks can have their Transaction mode task property set to Nested deferred.
|