Search Results dbms_aq




Overview

SYS.DBMS_AQ is the core Oracle database package that implements the Advanced Queuing (AQ) messaging infrastructure. Within Oracle E-Business Suite 12.1.1 and 12.2.2, DBMS_AQ provides the procedural interface through which applications enqueue and dequeue messages held in database-resident queues. It is an Oracle-supplied, SYS-owned package with a status of VALID, and it sits at the foundation of the asynchronous messaging layer used throughout EBS and the wider database platform.

Business functions rely on DBMS_AQ whenever work must be decoupled from the calling transaction: deferred processing, workflow event propagation, inter-application integration, and Business Event System subscriptions all rest on queued messages. Rather than communicating directly, producers place messages on a queue and consumers retrieve them at a later point, providing isolation, persistence, and transactional integrity. Because DBMS_AQ operates inside the database transaction, message state is committed or rolled back consistently with the business data change that produced or consumed it.

Key Procedures and Functions

The ETRM documentation for this object records the package as VALID but lists no individually documented procedures or functions for DBMS_AQ. The package is documented at the object and dependency level only; consumers should therefore treat the published Oracle Database PL/SQL Packages and Types Reference as the authoritative source for the callable interface, which centers on the ENQUEUE and DEQUEUE operations and their associated option and property types.

  • Enqueue operations — place a message, together with its payload and message properties, onto a named queue for later retrieval.
  • Dequeue operations — remove or browse messages from a queue according to selection criteria such as consumer, correlation, or message identifier.
  • AQ object and record types — the package depends on and works with SYS.ANYDATA and the AQ$_* type family, including AQ$_AGENT (message sender or recipient), AQ$_POST_INFO_LIST and AQ$_SIG_PROP (notification posting and signaling), and AQ$_REG_INFO_LIST (registration definitions).

No parameter lists are reproduced here, consistent with the documented metadata. Note that DBMS_AQ is distinct from DBMS_AQADM, which performs administrative tasks such as creating and managing queues and queue tables; DBMS_AQ is the runtime messaging API.

Tables Accessed

The provided metadata does not document specific tables accessed by DBMS_AQ through APPS synonyms, and no referenced tables are listed. At the database level, DBMS_AQ operates on AQ queue tables and their associated internal AQ$_* objects, which hold the message payloads and metadata. The package also depends on SYS-owned type definitions including ANYDATA, AQ$_AGENT, AQ$_POST_INFO_LIST, AQ$_REG_INFO_LIST, AQ$_SIG_PROP, and STANDARD.

DBMS_AQ is heavily reused across the database: it is referenced by 18 other packages, including DBMS_AQADM_SYS, DBMS_AQIN, DBMS_AQJMS, DBMS_AQJMS_INTERNAL, DBMS_AQ_INV, DBMS_CHANGE_NOTIFICATION, DBMS_ISCHED, DBMS_PRVTAQIM, DBMS_PRVTAQIP, DBMS_REPCAT_ADD_MASTER, DBMS_STATS, DBMS_STATS_INTERNAL, DBMS_STREAMS_ADM_IVK, DBMS_STREAMS_MESSAGING, KUPC$QUE_INT, PRVT_ILM, SCHEDULER$_JOB_EVENT_HANDLER, and AQ$_JMS_MESSAGE. Many of these are Oracle internal consumers, and their presence confirms the package as a shared platform component rather than an EBS-specific module.

Usage Notes

DBMS_AQ is typically not invoked directly from EBS forms or concurrent programs. Instead, applications call higher-level EBS APIs such as the Business Event System or Workflow mailer interfaces, which in turn use DBMS_AQ underneath. Direct invocation is generally limited to custom integrations, diagnostic scripts, and advanced queuing administration carried out by database administrators or technical consultants.

Because the package is owned by SYS and marked VALID, EBS customers should not modify it; custom code should only call the documented public interface. When troubleshooting queued messages in EBS 12.1.1 or 12.2.2, the dependency list above is the practical starting point, since it identifies the internal packages through which queue activity actually flows.