Search Results owa_opt_lock
Overview
SYS.OWA_OPT_LOCK is a low-level Oracle-supplied PL/SQL package that belongs to the Oracle Web Agent (OWA) toolkit, the PL/SQL foundation underlying Oracle's mod_plsql and PL/SQL Gateway technologies. In the Oracle E-Business Suite 12.1.1 and 12.2.2 environments, this package is delivered as part of the core SYS schema and is available to any EBS session, including the APPS schema, through standard synonym resolution. Its business function is to implement optimistic locking for data accessed through PL/SQL-based web and forms interfaces. Optimistic locking prevents two concurrent users from silently overwriting each other's changes: rather than physically locking a row for the duration of a user's think time, the package records a compact checksum "snapshot" of the row's values at read time and revalidates that snapshot at update time. If the underlying row has changed in the interim, verification fails and the update is rejected. This protects data integrity in self-service, iProcurement, and other HTML-based EBS flows where long-lived database locks would be impractical.
Key Procedures and Functions
The package exposes a small, well-defined API. The documented procedures and functions are:
- CHECKSUM — Overloaded function that computes a numeric checksum. One form calculates a checksum from an input character buffer; the other derives a checksum from a table owner, table name, and ROWID. The checksum is the mechanism by which row state is reduced to a comparable value.
- STORE_VALUES — Procedure that stores the current values of a specified row (identified by owner, table name, and ROWID) into the session's optimistic-lock state, typically held in a package or session structure. This establishes the baseline snapshot for later comparison.
- VERIFY_VALUES — Boolean function that accepts a previously stored array of values and returns TRUE if the underlying row still matches the stored snapshot, or FALSE if it has been modified by another session. This is the central optimistic-locking test; the user's search term "verify_values" corresponds directly to this function. Callers use the boolean result to decide whether to proceed with an update or raise a concurrency error to the end user.
- GET_ROWID — Function that, given the stored values array, returns the ROWID of the target row, allowing the caller to re-identify and operate on the row after verification.
Note that CHECKSUM and GET_ROWID carry PRAGMA RESTRICT_REFERENCES declarations (WNDS, RNDS, WNPS, RNPS), marking them as side-effect-free functions that read no database state — a constraint that makes them safe for use in SQL and PL/SQL expressions.
Tables Accessed
The ETRM metadata lists no tables referenced through APPS synonyms for this package. This is consistent with its design: OWA_OPT_LOCK is a stateless, generic utility. It does not maintain its own repository of locked rows. Instead, STORE_VALUES captures data from whatever table the caller specifies by owner and table name, and the stored snapshot is held in caller-defined PL/SQL structures (the vcArray type declared in the package specification, an index-by table of VARCHAR2(2000)). Because the package never writes to persistent tables, it introduces no contention or storage overhead of its own; locking state lives only for the duration of the database session.
Usage Notes
SYS.OWA_OPT_LOCK is not typically invoked directly by end users or even by EBS application developers working in the Forms or concurrent-program layers. It is exercised indirectly by middle-tier PL/SQL web applications and by any custom code that follows the OWA optimistic-locking pattern. The canonical usage sequence is: call STORE_VALUES to snapshot the row when the page is rendered, present the values to the user, then on submission call VERIFY_VALUES; if TRUE, proceed with the UPDATE and optionally use GET_ROWID to locate the row; if FALSE, notify the user that the record changed and re-present current data. The package is also available for custom EBS extensions that need the same concurrency-control behavior outside the standard web toolkit. Because it resides in SYS and is covered by Oracle's proprietary/confidential licensing, it should be treated as a fixed, read-only dependency: application code may call it but should never modify or repackage it. In EBS 12.1.1 and 12.2.2 the package is present by default with no additional configuration, and no EBS package in the documented metadata references it, confirming its role as an optional, low-level utility rather than a mandatory component of any standard EBS business flow.
-
PACKAGE: SYS.OWA_OPT_LOCK
12.1.1
owner:SYS, object_type:PACKAGE, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE: SYS.OWA_OPT_LOCK
12.2.2
owner:SYS, object_type:PACKAGE, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE: SYS.OWA_OPT_LOCK
12.2.2
-
SYNONYM: PUBLIC.OWA_OPT_LOCK
12.1.1
owner:PUBLIC, object_type:SYNONYM, object_name:OWA_OPT_LOCK, status:VALID,
-
SYNONYM: PUBLIC.OWA_OPT_LOCK
12.2.2
owner:PUBLIC, object_type:SYNONYM, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE BODY: OWAPUB.OWA_OPT_LOCK
12.1.1
owner:OWAPUB, object_type:PACKAGE BODY, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE: OWAPUB.OWA_OPT_LOCK
12.1.1
owner:OWAPUB, object_type:PACKAGE, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE BODY: SYS.OWA_OPT_LOCK
12.1.1
owner:SYS, object_type:PACKAGE BODY, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE BODY: SYS.OWA_OPT_LOCK
12.2.2
owner:SYS, object_type:PACKAGE BODY, object_name:OWA_OPT_LOCK, status:VALID,
-
PACKAGE: OWAPUB.OWA_OPT_LOCK
12.1.1
-
PACKAGE: SYS.OWA_OPT_LOCK
12.1.1
-
PACKAGE: SYS.HTF
12.1.1
owner:SYS, object_type:PACKAGE, object_name:HTF, status:VALID,
-
PACKAGE: OWAPUB.HTF
12.1.1
owner:OWAPUB, object_type:PACKAGE, object_name:HTF, status:VALID,
-
12.1.1 DBA Data
12.1.1
-
12.1.1 DBA Data
12.1.1
-
PACKAGE: SYS.HTF
12.2.2
owner:SYS, object_type:PACKAGE, object_name:HTF, status:VALID,
-
PACKAGE: OWAPUB.HTP
12.1.1
owner:OWAPUB, object_type:PACKAGE, object_name:HTP, status:VALID,
-
PACKAGE: SYS.HTP
12.2.2
owner:SYS, object_type:PACKAGE, object_name:HTP, status:VALID,
-
PACKAGE: SYS.HTP
12.1.1
owner:SYS, object_type:PACKAGE, object_name:HTP, status:VALID,
-
PACKAGE: SYS.DBMS_SYS_SQL
12.1.1
owner:SYS, object_type:PACKAGE, object_name:DBMS_SYS_SQL, status:VALID,
-
PACKAGE: SYS.DBMS_SYS_SQL
12.2.2
owner:SYS, object_type:PACKAGE, object_name:DBMS_SYS_SQL, status:VALID,
-
PACKAGE: SYS.DBMS_SQL
12.2.2
owner:SYS, object_type:PACKAGE, object_name:DBMS_SQL, status:VALID,
-
PACKAGE: SYS.DBMS_SQL
12.1.1
owner:SYS, object_type:PACKAGE, object_name:DBMS_SQL, status:VALID,
-
PACKAGE BODY: OWAPUB.OWA_OPT_LOCK
12.1.1
-
12.1.1 DBA Data
12.1.1
-
12.2.2 DBA Data
12.2.2
-
12.2.2 DBA Data
12.2.2
-
12.1.1 DBA Data
12.1.1
-
OWAPUB.OWA_OPT_LOCK dependencies on OWA_OPT_LOCK
12.1.1
-
PUBLIC.OWA_OPT_LOCK dependencies on OWA_OPT_LOCK
12.2.2
-
SYS.OWA_OPT_LOCK dependencies on OWA_OPT_LOCK
12.2.2
-
PACKAGE BODY: SYS.OWA_OPT_LOCK
12.1.1
-
PUBLIC.OWA_OPT_LOCK dependencies on OWA_OPT_LOCK
12.1.1
-
SYS.OWA_OPT_LOCK dependencies on OWA_OPT_LOCK
12.1.1
-
PACKAGE BODY: SYS.OWA_OPT_LOCK
12.2.2
-
PACKAGE: SYS.DBMS_ASSERT
12.2.2
owner:SYS, object_type:PACKAGE, object_name:DBMS_ASSERT, status:VALID,
-
PACKAGE: SYS.DBMS_ASSERT
12.1.1
owner:SYS, object_type:PACKAGE, object_name:DBMS_ASSERT, status:VALID,
-
SYNONYM: PUBLIC.DBMS_SQL
12.1.1
owner:PUBLIC, object_type:SYNONYM, object_name:DBMS_SQL, status:VALID,
-
PACKAGE: SYS.DBMS_STANDARD
12.1.1
owner:SYS, object_type:PACKAGE, object_name:DBMS_STANDARD, status:VALID,
-
PACKAGE: SYS.DBMS_STANDARD
12.2.2
owner:SYS, object_type:PACKAGE, object_name:DBMS_STANDARD, status:VALID,
-
PACKAGE: SYS.STANDARD
12.1.1
owner:SYS, object_type:PACKAGE, object_name:STANDARD, status:VALID,