Search Results unpack_message




Overview

SYS.DBMS_PIPE is the Oracle-supplied PL/SQL package that implements inter-process communication (IPC) through in-memory pipes within a single database instance. Unlike OS-level pipes, DBMS_PIPE allows arbitrary Oracle sessions to exchange messages privately or publicly, buffering data in the System Global Area until it is retrieved. In the Oracle E-Business Suite 12.1.1 and 12.2.2 environments, the package is certified as VALID in the SYS schema and is a foundational dependency of the EBS technology stack rather than a business-facing API. It enables loosely coupled coordination between concurrent programs, forms sessions, and background agents without requiring direct database table access. Because the package resides in SYS and is exposed through a PUBLIC synonym, EBS application code can invoke it without schema qualification, and the ETRM metadata classifies the API as OTHER, reflecting its infrastructure role.

Key Procedures and Functions

The documented interface comprises eighteen procedures and functions organized into three functional groups.

These procedures are complemented by additional documented INTERNAL subprograms not listed in the excerpt. Parameter lists are intentionally omitted here; each call conforms to the standard DBMS_PIPE signature.

Tables Accessed

No application tables are documented as being referenced by DBMS_PIPE via EBS APPS synonyms. The package operates entirely against SGA-resident pipe memory and internal fixed views such as V$DB_PIPES for monitoring. Persistence is not provided: pipe contents exist only for the life of the instance, which distinguishes DBMS_PIPE from DBMS_AQ-based queuing. The absence of documented table dependencies means the package imposes no database I/O on EBS transactional schemas.

Usage Notes

Within EBS, DBMS_PIPE is typically invoked from concurrent programs, database triggers, and custom PL/SQL that require lightweight signaling. A common pattern is to have a long-running worker call RECEIVE_MESSAGE with a timeout in a loop while a form or concurrent request calls SEND_MESSAGE to wake it. The metadata records DBMS_PIPE as referenced by DBMS_ALERT, DBMS_DEBUG, DBMS_SNAPSHOT, DBMS_SQLDIAG, DBMS_CAPTURE_ADM_INTERNAL, DBMS_I_INDEX_UTL, DBMS_PIPE itself, and the EBS-specific packages OWAPUB, DEBUG_CARTX, JVMRJBC, JVMRJBCINV, PBREAK, and PBRPH. Execution privileges are granted to PUBLIC by default, so DBMS_PIPE can be called from any EBS session without explicit grants. Because pipes consume SGA memory and are non-persistent, the package is unsuitable for durable messaging; Oracle recommends DBMS_AQ or Advanced Queuing for transactionally reliable EBS integrations. Sessions must also avoid name collisions by using UNIQUE_SESSION_NAME when creating private pipes.