Friday, October 9, 2026
  • About Us
  • Contact
DBAInsight
  • Guides
    • 23ai
    • RMAN
    • 26ai
    • Patch Update
    • RMAN
    • MySQL
    • Oracle GoldenGate
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification
NEWSLETTER
No Result
View All Result
DBAInsight
Home 23ai

Oracle 23c Automatic Transaction Rollback: A DBA’s Honest Take

May 20, 2026
in 23ai, 26ai
0
Oracle 23c Automatic Transaction Rollback: A DBA’s Honest Take
0
SHARES
119
VIEWS

Anyone who’s spent serious time managing Oracle in a high-concurrency production environment has a blocking transaction story. Mine involved a Friday afternoon, a long-running report that someone kicked off without thinking, and a payment processing queue that stacked up for eighteen minutes while I hunted down the blocker, confirmed it was safe to kill, and ran the ALTER SYSTEM command. Eighteen minutes doesn’t sound catastrophic until you’re the one explaining it to the business.

Oracle 23c’s Automatic Transaction Rollback is aimed directly at that scenario. The idea is simple enough: let the database handle blocker resolution automatically, based on priority rules you define, instead of waiting for a DBA to notice, investigate, and intervene. The execution is more nuanced than it sounds, and there are real considerations before you turn this on in production. Let me walk through how it actually works.

Table of Contents

Toggle
    • Related posts
    • Oracle 26ai DBCA: Fix “There Are No ASM Disk Groups Detected” Error
    • Oracle Database 26ai Client Installation on Oracle Linux – Step-by-Step Guide
  • Why Manual Blocker Resolution Has Always Been Painful
  • How the Priority System Works
  • Track Mode: The Feature I’d Insist On Using First
  • What Visibility Looks Like in Practice
  • How This Differs From Resource Manager
  • Things to Think Through Before Enabling This
  • Where This Actually Helps

Related posts

Oracle 26ai DBCA: Fix “There Are No ASM Disk Groups Detected” Error

Oracle 26ai DBCA: Fix “There Are No ASM Disk Groups Detected” Error

August 28, 2026
Oracle Database 26ai Client Installation on Oracle Linux – Step-by-Step Guide

Oracle Database 26ai Client Installation on Oracle Linux – Step-by-Step Guide

August 5, 2026

Why Manual Blocker Resolution Has Always Been Painful

Row-level locking is fundamental to how Oracle maintains consistency. When a session runs an INSERT, UPDATE, DELETE, MERGE, or SELECT FOR UPDATE, it holds locks on the affected rows until the transaction commits or rolls back. That’s not a bug — it’s the whole point. But it becomes a problem when a low-priority transaction sits on locks that a high-priority transaction urgently needs.

The traditional DBA workflow for this situation goes something like:

Query V$SESSION and V$TRANSACTION to find who’s blocking whom. Figure out whether the blocker is doing something legitimate or just sitting idle. Make a judgment call about whether killing it will cause problems. Run ALTER SYSTEM KILL SESSION and hope you got the right one. Repeat as needed.

That process is reactive by nature. By the time you’ve identified the blocker and acted on it, the business impact has already happened. The SLA breach, the queued transactions, the customer-facing slowdown — those are already in the rearview mirror. You resolved the problem, but you didn’t prevent it.

Automatic Transaction Rollback shifts this from reactive to proactive. The database enforces priority rules in real time, without waiting for anyone to notice.


How the Priority System Works

The model is straightforward. Transactions get assigned one of three priority levels: HIGH, MEDIUM, or LOW. You set this at the session level:

sql

ALTER SESSION SET TRANSACTION_PRIORITY = HIGH;

The default is HIGH if you don’t set anything, which means existing applications without explicit priority assignments will behave as before until you introduce lower-priority designations for appropriate workloads.

The hierarchy determines who can roll back whom:

  • A HIGH-priority transaction can trigger rollback of MEDIUM or LOW blockers
  • A MEDIUM-priority transaction can trigger rollback of LOW blockers
  • LOW-priority transactions don’t get to terminate anyone

The other half of the configuration is the wait target — how long a higher-priority transaction waits before the database takes action against its blocker:

sql

ALTER SYSTEM SET HIGH_PRIORITY_WAIT_TARGET = 15;

That’s 15 seconds. A HIGH-priority transaction blocked by something lower-priority will wait up to 15 seconds, and if the block isn’t resolved naturally by then, Oracle rolls back the blocker automatically. You can configure this at the system level, at the PDB level, or per RAC instance, which gives you reasonable flexibility for environments where different workloads have different tolerance thresholds.

The range Oracle supports for wait targets runs from 1 second up to 2,147,483,647 seconds. You’re unlikely to need the upper bound. The interesting decisions are at the lower end — how aggressive do you actually want to be?


Track Mode: The Feature I’d Insist On Using First

Before you enable actual rollback behavior in any production environment, there’s a simulation mode called Track Mode that deserves more attention than it usually gets in Oracle documentation.

In Track Mode, the database evaluates every blocking scenario against your configured priority rules and records what would have happened — which transactions would have been rolled back, when, and why — without actually doing anything. No sessions get killed. No transactions get rolled back. You just get the data.

This matters for a few reasons. Priority-based rollback interacts with things you might not anticipate: batch jobs that temporarily block but complete quickly, legacy application patterns that weren’t designed with priorities in mind, edge cases where an apparently low-priority session is actually doing something the business cares about. Track Mode lets you discover these before you’ve rolled back something important and triggered a support escalation.

My strong recommendation: run Track Mode for at least a few weeks across different business cycles before switching to live rollback. Analyze V$SYSSTAT for the “potential rollback” counters, review the alert log entries, and make sure the policy you’ve designed matches the reality of how your workloads actually behave.


What Visibility Looks Like in Practice

The monitoring story for this feature is decent. V$TRANSACTION now surfaces transaction priorities and wait targets alongside the blocking information you’d already be querying. The alert log records rollback events with enough context to reconstruct what happened: session ID, transaction ID, priority level, what got terminated and why, and the wait target that triggered the action.

V$SYSSTAT adds counters for both modes:

In Rollback Mode, you’ll see HIGH-priority rollbacks and MEDIUM-priority rollbacks accumulating as the feature operates. In Track Mode, the equivalent “potential rollback” counters tell you what the live policy would have done.

These counters are useful for tuning. If you’re seeing a high rate of potential rollbacks in Track Mode, you might need to reconsider how aggressively you’ve classified your workloads, or whether your wait targets are set appropriately for your normal blocking patterns.


How This Differs From Resource Manager

If you’ve used Oracle Resource Manager for blocking control, you’ll notice some overlap in intent but a meaningful difference in approach. Resource Manager’s controls — MAX_EST_EXEC_TIME, MAX_IDLE_TIME, MAX_IDLE_BLOCKER_TIME — operate on session-level characteristics. How long has this session been running? How long has it been idle? Is it blocking while idle?

Automatic Transaction Rollback operates on business priority. It’s not asking how long a transaction has been running — it’s asking whether this transaction should yield to that one based on which workload matters more. That’s a different question, and for mixed-workload environments where you have batch jobs, reports, and transactional processing sharing the same database, it’s often the more useful question.

The two mechanisms aren’t mutually exclusive. You can run both, and in complex environments, you probably should.


Things to Think Through Before Enabling This

A few considerations that don’t always surface in feature announcements:

Priority assignment needs to be deliberate. Since HIGH is the default, applications that don’t explicitly set a priority will run as HIGH. If everything is HIGH, the feature does nothing useful. You need to actually go through your workload landscape, identify what genuinely needs priority treatment, and set MEDIUM or LOW appropriately for everything else. That’s an operational process, not a database configuration.

Rollback has costs. When Oracle rolls back a transaction, the rolled-back session gets an error and its work is undone. If the application isn’t designed to handle that gracefully — retry logic, appropriate error handling — you’ll get a different kind of problem replacing the original one. Review how your lower-priority applications respond to unexpected rollbacks before going live.

Wait targets require tuning. An aggressive wait target (say, 5 seconds) in an environment with normally fast transactions might be fine. In an environment where MEDIUM-priority batch work legitimately holds locks for longer periods as part of normal operation, 5 seconds will generate constant rollbacks that aren’t actually improving anything. Start conservative and tune based on Track Mode data.

Test across business cycles. Month-end processing, batch windows, peak transaction periods — these create different blocking patterns than a typical Tuesday afternoon. Track Mode data from one week might not represent the full range of scenarios you need to plan for.


Where This Actually Helps

For environments that match the intended use case — mixed-priority workloads, recurring blocking contention, DBAs spending meaningful time on manual blocker resolution — Automatic Transaction Rollback is a genuine operational improvement. It won’t make blocking contention disappear, because the underlying causes (long-running transactions, poor application locking patterns, resource contention) are still there. What it does is remove the human from the resolution loop for the scenarios where priority rules can make the call automatically.

That’s valuable. The eighteen-minute payment processing queue scenario I started with — in an environment with this feature configured correctly, it resolves in 15 seconds instead of 18 minutes. That’s the delta. Whether that delta matters enough to justify the configuration effort and the operational care required to do it right is something you’d have to evaluate against your own environment.

For high-concurrency, mission-critical Oracle deployments where blocking contention is a recurring problem and the workload mix is well-understood, it almost certainly does.

Tags: Automatic Transaction RollbackBlocking Session ManagementDatabase PerformanceOracle Database 23cOracle DBA
Previous Post

What Oracle Database 23c Actually Gets Right About Security

Next Post

Oracle RAC Database Monitoring and Performance Tuning: Essential Tools for Optimizing Cluster Performance

Next Post
Oracle RAC Database Monitoring and Performance Tuning: Essential Tools for Optimizing Cluster Performance

Oracle RAC Database Monitoring and Performance Tuning: Essential Tools for Optimizing Cluster Performance

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

POPULAR NEWS

  • Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    Oracle Patch 38632161: Step-by-Step Guide to Upgrade Oracle 19c to Release Update 19.30

    0 shares
    Share 0 Tweet 0
  • How To Download And Install The Latest OPatch

    0 shares
    Share 0 Tweet 0
  • Oracle Database 19.32 Release Update (RU) Patching Guide – Patch 39472050

    0 shares
    Share 0 Tweet 0
  • How to Install Oracle 19c Database on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • Installing Oracle Database 26AI on Red Hat Enterprise Linux 9

    0 shares
    Share 0 Tweet 0
  • About Us
  • Contact

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

No Result
View All Result
  • Home
  • Cloud & Modern DBs
  • Guides
  • Cloud Technology
  • Case Studies
  • Troubleshooting
  • Training & Certification

© 2026 DBAInsight - Smarter Databases. Sharper Insights. DBAInsight.

Add as a preferred source on Google
Add as preferred source on Google