Search Results psb_concurrency_control_pvt




Overview

The APPS.PSB_CONCURRENCY_CONTROL_PVT package body implements the private concurrency control layer used by Oracle E-Business Suite budgeting and worksheet processing within the Public Sector Budgeting (PSB) module. Its primary business function is to prevent conflicting concurrent operations from corrupting budget worksheet data or budget revision records when multiple users or concurrent programs attempt to modify the same budgeting entities simultaneously. The package operates as a private (PVT) implementation package, meaning it is not intended to be called directly by external applications but rather serves as an internal utility consumed by other PSB packages and concurrent programs. It is classified as a PVT API within the ETRM documentation, confirming its role as a supporting, non-public interface. The package is currently in VALID status in the APPS schema and is present in both Oracle EBS 12.1.1 and 12.2.2 environments.

Key Procedures and Functions

The package body exposes three documented procedures, each serving a distinct role in the concurrency management lifecycle:

  • ENFORCE_CONCURRENCY_CONTROL — Establishes and acquires a concurrency control lock before a budgeting operation proceeds. This procedure is the entry point that prevents two sessions from processing the same budget worksheet or budget revision simultaneously, typically by acquiring a database lock through DBMS_LOCK and validating the lock state against the target entity.
  • RELEASE_CONCURRENCY_CONTROL — Releases the previously acquired concurrency lock once the budgeting transaction completes, whether successfully or through error handling. This ensures locks do not remain held indefinitely and that subsequent operations can proceed without contention.
  • GET_DEBUG — Returns the current debug or diagnostic state used within the package, supporting troubleshooting and diagnostic logging during concurrency enforcement. It functions as an internal accessor for debugging behavior rather than a business-related operation.

No public parameter signatures are documented, and callers should rely on the documented purposes rather than inferring argument lists.

Tables Accessed

The documented dependency metadata identifies DBMS_LOCK (via APPS synonyms), PSB_BUDGET_REVISIONS_V, and PSB_WORKSHEETS_V as key referenced objects. PSB_WORKSHEETS_V and PSB_BUDGET_REVISIONS_V are views over the core budgeting worksheet and budget revision tables, and they are accessed to identify the specific worksheet or revision against which concurrency control must be enforced. In practice, the package reads these views to determine the entity key and lock scope, then leverages DBMS_LOCK to serialize access. The package also references FND_API, FND_MESSAGE, and FND_MSG_PUB for standard Oracle EBS API error handling and message retrieval, and relies on STANDARD and SYS built-ins.

Usage Notes

PSB_CONCURRENCY_CONTROL_PVT is not referenced by any other database object at the schema level, indicating it is invoked from within PL/SQL execution contexts rather than through declarative dependencies. It is typically called by higher-level PSB packages, budgeting forms, and concurrent programs that perform worksheet submission, budget revision processing, or bulk budgeting operations. A calling routine would invoke ENFORCE_CONCURRENCY_CONTROL before modifying a budget worksheet or revision, execute the business logic, and then invoke RELEASE_CONCURRENCY_CONTROL in the exception or completion handler to free the lock. GET_DEBUG is used internally for diagnostic purposes. Because the package is a PVT implementation, custom code should prefer supported public APIs and treat this package as an internal dependency. Administrators troubleshooting blocked or locked budgeting operations in EBS 12.1.1 or 12.2.2 should examine this package's lock enforcement behavior and DBMS_LOCK usage when diagnosing concurrency contention in PSB.