The following sections describe Oracle Database Advanced Queuing (AQ) improvements.
JMS Bulk Message Purging
Oracle Streams Advanced Queuing (AQ) JMS uses partitioned tables beginning in Oracle Database 12c Release 1 (12.1). Oracle Java Message Service (JMS) messages are purged by truncating partitions instead of row-at-a-time deletes. This feature provides increased performance and reduced overhead.
JMS Event-Driven Listener
AQ Java Message Service (AQ JMS) listener no longer requires open connections dedicated to listening for new JMS messages. Polling across multiple queues is not required. This feature improves AQ JMS performance and scalability and reduces overhead.
JMS Message Priorities, Exception Queues, and Expiration
AQ JMS supports priorities, exception queues, and message expiration differently than in prior releases. This feature improves AQ JMS performance, reduces overhead, and provides better standards compliance.
JMS Transactional Non-persistent Queues
In this release, AQ JMS supports transactional nonpersistent queues instead of emulating them with persistent queues.
This feature provides AQ JMS with better performance, scalability, reduced overhead, and better standards compliance.
Message Forwarding on Oracle RAC
Advanced Queuing (AQ) on Oracle RAC is now sharded to avoid unnecessary exchange of blocks between instances. Tunable message forwarding is also supported on Oracle RAC. This feature improves AQ performance and scalability.
AQ Rules Engine Fast Evaluation of SYS_CONTEXT and Other Predicates
AQ rules engine has been enhanced to provide faster evaluation of expressions such as BITAND, CEIL, FLOOR, LENGTH, POWER, CONCAT, LOWER, UPPER, INSTR, SYS_CONTEXT, and UID. This feature improves AQ performance and scalability.
Rules Engine Result Cache
The rules engine introduces a result cache to improve the performance of many commonly used rules. The result cache bypasses the evaluation phase if an expression with the same attributes has already been evaluated. This feature provides performance improvement by caching the results of rule evaluations.
Sharded Queues for Performance and Scalability
Oracle Streams Advanced Queuing (AQ) now has queue tables that are partitioned. Partitioned tables form part of the foundation to scale and increase performance of AQ, especially on Oracle RAC or Exadata.
Simplified Metadata and Schema
AQ now has fewer tables and supports objects to support sharded queues. This feature provides improvement in performance, scalability, and manageability.