Transaction Control
Normally, all SQL statements are written to a database in one transaction. However, the transaction behaviour can be changed with attribute Transaction control. See section Phase 4 - SQL Execution. The following settings are possible.
After record |
When exiting the node, there is no commit sent to the database. This is the default setting. If all nodes of the destination structure have this setting, Lobster_data does not trigger a commit (to all involved database aliases) until the last node of the (partial) destination tree of a record has been exited. A commit for a node is triggered if the parent node triggers a commit (starting with the (virtual) root node). So there is at least one commit per record. |
All open statements |
When exiting the node, a commit is triggered for all database aliases with open transactions. If the database cannot execute the commit, Lobster_data will execute a rollback for the affected database alias. Note: This is not a two-phase commit! An executed commit for a database alias cannot be undone! Note: If a node with this setting is entered, already open transactions will not be closed but used. |
Only DB alias of this node |
This is the most common commit setting. When exiting the node, a commit is triggered for the associated database alias of the node. If the database cannot execute the commit, Lobster_data will execute a rollback for the affected database alias. Note: If a node with this setting is entered, already open transactions will not be closed but used. |
After all records |
With this setting, a commit is sent to the database after the last record has been processed. That means either all data of the node ends up in the database or none. Note: If a node with this setting is entered, already open transactions will not be closed but used. |