My Oracle Support Banner

Master Note: Oracle Transaction Management (Local) Overview (Doc ID 1506115.1)

Last updated on MARCH 06, 2019

Applies to:

Oracle Database - Enterprise Edition - Version and later
Oracle Database Cloud Schema Service - Version N/A and later
Oracle Database Exadata Cloud Machine - Version N/A and later
Oracle Database Exadata Express Cloud Service - Version N/A and later
Oracle Cloud Infrastructure - Database Service - Version N/A and later
Information in this document applies to any platform.
***Checked for relevance on 25-Mar-2015***


Transaction Management is one of most important properties for a database to maintain Data concurrency and consistency. The purpose of this document is to give an overview of how Oracle Transaction Management works.




To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

In this Document
 Multiversion consistency model
 Read-consistency in RAC
 Read-consistency for LOB
 Transaction isolation models
 Getting Started:
 How to find the total transactions inside a database?
 How do we know how many concurrent transactions a database can process?
 What happens exactly when a data change is being made through a transaction?
 What is a savepoint inside a transaction?
 What are the common types of lock categories placed when a transaction is running in a database?
 How to find how many transactions existed in the database during a particular time in the past?
 How to find the sqltext of all the locked transactions inside the database?
 What does shutdown transactional mean?
 Why am I seeing an entry in v$rollstat but no corresponding entry in v$transaction?
 What does the parameter TRANSACTIONS in v$resource_limit signify? As each session can only start one transaction, why is it's value more than that of the parameter SESSIONS?
 Dirty Reads
 Nonrepeatable (fuzzy) reads
 Phantom reads
 Transaction recovery
 Waits due to Insufficient ITL slots in a Block
 You are trying to place a tablespace in read-only mode but it is hanging
 You are using TAF in a RAC environment and you observe that your session was disconnected when the database issued a shutdown transactional even though your transaction still had not completed.
 What is ORA-01555 "Snapshot too old" and when is it observed?
 ORA-08177: Cannot serialize access for this transaction
 You are receiving the error "ORA-01453: SET TRANSACTION must be first statement of transaction" while executing the SET transaction command in the middle of a transaction even though the DMLs above this command hasn't changed any data.
 You inserted some rows into a table using INSERT INTO and later you observe that the inserted row is not showing up when selecting from the same table.
 You are receiving the error "ORA-30036: unable to extend segment by 8 in undo tablespace <> " in the alert log but when you verify the v$undostat, you observe that there is lots of free space in the form of expired extents. Simply these extents are not being used at all.
 You observe that the database crashed and during startup it is hanging with the message "SMON: enabling tx recovery" and after sometime the following messages are seen in alert log >> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! pid=xxx.
 Known bugs:
 Additional References:

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.