In the 1980s, message-oriented middleware (MOM) gained popular usage. MOM uses messages to transmit information between systems. It doesn’t require the overhead of a two-phase commit because the MOM itself guarantees the delivery of all messages. Products such as IBM’s MQSeries store control information (message destination, expiration, priority, and recipients) and the message contents in a file-based queue. Delivery is guaranteed in that the message will remain in the queue until the destination is available and the message is forwarded.
Oracle’s Advanced Queuing (AQ) facility, first introduced with Oracle8 Enterprise Edition, provides a complete queuing environment by storing the queue in the Oracle relational database. Advanced queues are Oracle database tables that support queuing operations—in particular, enqueue to create messages and dequeue to consume them. These messages, which can either be unstructured (raw) or structured (as Oracle objects, which are described in Chapter 13), correspond to rows in a table. Messages are stored in normal queues for normal message handling or in exception queues if they cannot be retrieved for some reason.
Queues are created through PL/SQL commands or the Java API. Oracle9i introduces several new AQ capabilities:
XML-based messaging over HTTP enables support across firewalls; requests may be through the XML-based Internet Document Access Protocol (i DAP).
AQ policies and services can be ...