The web paradigm is structurally equivalent to the three-tiered client-server architecture. A browser replaces the desktop client, Oracle REST Data Services (ORDS) replaces the application server, and Oracle Database 23ai remains the database tier. The delivery mechanism changed; the Oracle engine did not. This module covered the fundamental concepts behind web-based Oracle 23ai applications and demonstrated practical techniques for maintaining Oracle performance across all three tiers.
SELECT FOR UPDATE
locks while a user reads a page — is structurally impossible in a web
application.date_last_updated), ORA_ROWSCN,
or Oracle 23ai lock-free reservations for high-contention numeric columns such as
inventory counts and account balances.FETCH NEXT
or ORDS ?limit= parameters. Declaring and holding cursors open across
HTTP requests is unreliable — the ORDS connection pool may assign a different
database session to the next request.This module progressed from Oracle web architecture fundamentals through request handling, tuning, application design, and concurrency management:
Lesson 1 — Tuning Oracle for Web Applications: established the foundational principle that a web-based Oracle application is still an Oracle application — the Internet serves as the delivery mechanism. Traced Oracle web technology from Oracle7.3 and CGI through Oracle 23ai, APEX, and ORDS. Documented the Oracle 23ai-specific features: JSON Relational Duality, AI Vector Search, True Cache, Automatic Indexing, and sessionless transactions.
Lesson 2 — Oracle Web Applications: detailed the 8-step web data request flow from browser HTTPS request through ORDS, Oracle Net, Oracle Listener, SQL execution, result formatting, and HTTPS response delivery. Catalogued the browser-based tools that connect to Oracle 23ai — Database Actions, APEX, ORDS, Data Studio, OML Notebooks, OCI Console, and Oracle Enterprise Manager.
Lesson 3 — Web Request Broker: mapped the legacy Oracle 8i/9i web architecture components (CGI, WRB Dispatcher, Executable Engines, PL/SQL Agent, Java Cartridge, LiveHTML Cartridge) to their Oracle 23ai equivalents (ORDS mid-tier, ORDS PL/SQL Gateway, WebLogic microservices, APEX dynamic pages). Documented the ORDS JDBC connection pool as the architectural descendant of the WRB cartridge pool — solving the same concurrency problem at the JDBC layer rather than the OS process layer.
Lesson 4 — Web Listener: described the function of the Oracle Web Listener and its evolution through Oracle 11g, 19c, and 23ai. Documented the five-step ORDS web request lifecycle (receive → route → process → format → deliver) and the three web listener options: ORDS (the only recommended option for Oracle 23ai), OHS (reverse proxy only), and EPG (deprecated).
Lesson 5 — Modern Oracle Web Integration: documented the deprecation of WRB Cartridges in WebLogic Server 12c Release 2 (12.2.1.4) and the three-layer modern replacement architecture — Request Entry Layer (ORDS, WebLogic), Routing and Mediation Layer (ORDS, API Gateway, OSB, Oracle Integration), and Execution and Extension Targets (Oracle Database 23ai, APEX, REST APIs, microservices, OCI Functions, Event-Driven Services). Provided migration paths for cloud-first, on-premises/hybrid, and modern application scenarios.
Lesson 6 — Web-Based Tuning Tips: established the three-tier
tuning boundary framework — browser/client, ORDS/load balancer, Oracle Net, and
Oracle Database 23ai are tuned independently with different tools and parameters.
Documented ORDS JDBC pool parameters (jdbc.MaxLimit,
jdbc.MinLimit, jdbc.InitialLimit), Oracle Net SDU sizing,
SQLNET.EXPIRE_TIME for dead session cleanup, and True Cache for
read-heavy web workloads. Included the three-tier architecture diagram comparing
classic client/server with Oracle 23ai web model.
Lesson 7 — Designing Web Applications: ranked the five bottleneck areas by impact (network latency, connection creation overhead, load balancer/ORDS scaling, TLS/HTTP overhead, query/payload efficiency) and provided mitigations for each. Documented DRCP for multi-ORDS deployments, OCI Load Balancer configuration, Oracle 23ai-specific database design features (JSON Relational Duality Views, True Cache, Automatic Indexing, AI Vector Search, HCC compression), and the six design tips for Oracle 23ai web applications updated for ORDS and cloud-native deployments.
Lesson 8 — Web Application Concurrency: explained why traditional pessimistic locking fails in stateless web applications. Documented the four concurrency management strategies — no long-lived locks, optimistic locking, lock-free reservations, and request-scoped transactions. Covered the terminated connection lock problem, nonescalating row-level locking, optimistic locking via checksum/VERSION_ID/ORA_ROWSCN, Oracle 23ai RESERVABLE columns, ORDS autocommit behavior, and CLIENT_IDENTIFIER for auditing through shared connection pools.
Lesson 9 — Alternative Concurrency Mechanisms: provided a comprehensive framework for choosing among Oracle 23ai concurrency mechanisms by workload pattern. Documented MVCC read consistency as the alternative to shared locks, optimistic locking as the alternative to exclusive locks, Oracle 23ai lock-free reservations for high-contention numeric columns, Priority Transactions for workload tiering, the UPDATE WHERE optimistic update pattern, and SELECT FOR UPDATE SKIP LOCKED for non-blocking queue processing.
Lesson 10 — Date/Time Stamp: documented the timestamp-based
variant of optimistic locking using a date_last_updated column. Provided
a production-ready PL/SQL procedure with four status codes (SUCCESS, CONFLICT,
NOT_FOUND, ERROR), PRAGMA EXCEPTION_INIT, SQL%ROWCOUNT conflict detection, and
COMMIT/ROLLBACK transaction management. Compared the timestamp approach to
ORA_ROWSCN, JSON Relational Duality View ETAGs, and RESERVABLE columns.
Upon completion of this module, you should be able to:
date_last_updated, ORA_ROWSCN, Oracle 23ai lock-free reservations,
Priority Transactions, and SELECT FOR UPDATE SKIP LOCKED for queue
processing.Key terms introduced or applied in this module: