Re : Transactions in  OutSystems

Re : Transactions in  OutSystems

  
Hello,

I would like to understand in more detail how transactions work in Outsystems.

For starters, documentation refers that the transaction is created with the first database access. What I would like to know is:
- Do the actions invoked after its creation (but in the same action) share this transaction (i.e. do actions implement the Supported or Required transaction option)

or

- Do the actions invoked after its creation (but in the same action) start a new transaction (RequiresNew transaction option)

What is the transaction isolaton level the platform implements?

I have in mind some specific situations, but they might be cleared up depending on the answers to the questions above, so I will restrain from extending this email for now.

Thanks in Advance

João Gomes
Hello João,

The transactions in OutSystems Hub Edition are managed during the period of a request. This means that an action shares the transaction with its caller. You can interrupt the current transaction and start a new one at any time by calling the CommitTransaction or the AbortTransaction built-in action.

The transaction isolation level used by the OutSystems Hub Edition is “Read Uncommitted”. The reason for this is related to the way SQL Server handles its locks, forcing some requests to use more than one transaction to complete. Note that all the write operations are made in a single transaction, to ensure the commit is atomic.

Hope this helps,
Rodrigo

 More recent information on this topic in www.outsystems.com/goto/transactions-outsystems-platform , including differences between the multiple database stacks supported by OutSystems.