Search Results register_propagator
Overview
SYS.DBMS_DEFER_SYS is the Oracle-supplied administrative interface for the deferred remote procedure call (RPC) subsystem that underpins symmetric replication and multi-master data propagation. In the Oracle E-Business Suite 12.1.1 and 12.2.2 environments, the package is owned by SYS and exposed to the APPLSYSPUB/APPS schema through a PUBLIC synonym, which allows Oracle EBS replication configurations and cloned or multi-node deployments to schedule, push, execute, and purge deferred transaction queues between databases.
The package's core business function is to manage the lifecycle of the deferred transaction queue: packages such as DBMS_DEFER_SYS enqueue RPC calls into local deferred transaction tables, and the procedures in this package transmit those queued transactions to their destination databases, execute them at the target, and maintain the destination and schedule definitions. ETRM records the object as VALID in 12.2.2 with an API classification of OTHER, reflecting its status as an internal Oracle replication utility rather than a documented EBS business API.
Key Procedures and Functions
ETRM documents 29 procedures and functions. They fall into several functional families:
- Destination management: ADD_DEFAULT_DEST and DELETE_DEFAULT_DEST/ DELETE_DEF_DESTINATION create and remove default destinations for deferred transactions; DISABLED and SET_DISABLED report and toggle whether a destination is currently enabled for propagation.
- Queue propagation: PUSH transmits queued deferred transactions to remote destinations; EXCLUDE_PUSH removes a destination from push activity; REGISTER_PROPAGATOR and UNREGISTER_PROPAGATOR register or deregister a user/database as an authorized propagator.
- Execution: EXECUTE and EXECUTE_ERROR run queued transactions at the destination, with EXECUTE_ERROR_AS_USER providing an alternative privilege-context execution path for failed items.
- Scheduling: SCHEDULE_EXECUTION/SCHEDULE_PUSH and UNSCHEDULE_EXECUTION/UNSCHEDULE_PUSH create and remove the job-based schedules that invoke deferred execution and push at defined intervals.
- Cleanup: PURGE and SCHEDULE_PURGE remove successfully applied deferred transactions from the local queue, and DELETE_TRAN and DELETE_ERROR remove individual transaction records and error entries.
These routines interact with the job scheduler to run propagation automatically rather than requiring manual intervention.
Tables Accessed
The ETRM metadata does not list specific tables accessed directly through APPS synonyms; DBMS_DEFER_SYS operates against the SYS-owned deferred transaction data dictionary tables (DEF$_* family), including destination definitions, the deferred call queue, and the error queue. It reads destination and schedule configuration and writes transaction status, error records, and purge results as procedures are invoked.
Usage Notes
DBMS_DEFER_SYS is typically invoked indirectly rather than by end users. It is referenced by eight other packages, including DBMS_ASYNCRPC_PUSH, DBMS_DEFER_INTERNAL_SYS, DBMS_DEFER_REPCAT, DBMS_DEFER_SYS_DEFINER, DBMS_DEFER_SYS_PART1, DBMS_REPCAT_MIG_INTERNAL, DBMS_REPCAT_SNA_UTL, and DBMS_DEFER_IMPORT_INTERNAL, all of which build on it to support asynchronous RPC and replication administration. Replication administrators may call PUSH, EXECUTE, SCHEDULE_PUSH, or PURGE manually from SQL*Plus to force propagation or clear a backlog, and scheduled jobs created by SCHEDULE_PUSH execute these routines automatically. In Oracle EBS 12.1.1 and 12.2.2, custom code should treat the package as an internal SYS utility and rely on documented EBS replication or cloning procedures rather than invoking it directly, since its interfaces are not part of the supported application API surface.