Transaction Begin - Task Properties (Magic xpa 3.x)
The Transaction Begin property options include:
|
|
|
|
|
Before Task Prefix
|
The transaction is opened before the Task Prefix and closed after the Task Suffix.
When this property is selected, Magic xpa:
-
Opens the transaction before fetching the task.
-
Commits the transaction only after the data file updating, which follows the execution of the Task Suffix.
-
Includes all operations between the open and the commit, including subtasks, within the transaction scope.
See also: Task Level Transaction Usage
|
a
|
a
|
a
|
Group
|
The transaction is opened before the Group Prefix. You must specify the variable that triggers the Group transaction. This variable must appear in one of the task’s Group events.
You can use a Group Level transaction to split the processing of a large table into processing by record groups. This way you reduce the scope of the transaction and maintain the benefits of transaction processing.
|
|
a
|
|
On Record Lock
|
The transaction is opened before a record is to be locked and closed after the record update.
|
a
|
a
|
|
Before Record Prefix
|
The transaction is opened before the Record Prefix and closed after the record update.
When this property is selected, Magic xpa:
-
Opens the transaction before fetching the record.
-
Commits the transaction only after the data file updating that follows the execution of the Record Suffix.
-
Includes all operations between the open and the commit, including subtasks, within the transaction scope.
Because the transaction is open during the interactive stage, you should not usually define a transaction at Prefix level for Online tasks in a multi-user environment, because the transaction involves locking and may cause problems for other users trying to access the same records or table.
|
a
|
a
|
a
|
Before Record Suffix
|
The transaction is opened before the Record Suffix and closed after the record update.
When this property is selected, Magic xpa:
All the Record Suffix operations, including subtask calls, are included in the transaction.
If the transaction fails, the engine recovers or aborts execution, depending on the Error Behavior Strategy property setting. Alternatively, you can define your own error handler to intercept the error.
|
a
|
a
|
|
Before Record Update
|
The transaction is opened before the physical updates are sent to the database.
When this property is selected, Magic xpa:
-
Opens the transaction after the Record Suffix execution, just before the execution of data file updating.
-
Commits the transaction only after the data file updating has been executed.
When you select this option, the transaction is opened just before updating the record. Only then does Magic xpa send a request to lock the record, according to the Identify Modified Row property. The advantage is that the transaction is small, which maximizes concurrency. But remember that because the lock is performed at the last minute, another user may have updated the data. Therefore, there is a risk of losing updated data.
Note that a Record Level transaction defined as Update does not include Record Suffix operations. The transaction defined as Update is the one most highly recommended for multi-user projects, because it reduces potential problems of concurrence between end users.
|
a
|
a
|
|
None
|
A transaction is not opened for the task. When Magic xpa calls a task with the Transaction Begin set to None from a task with an open transaction, the task behaves as if it is assigned to Within Active Transaction.
|
a
|
a
|
a
|
How Do I Refrain from Opening a Transaction?
How Do I Initiate a Database Transaction?