|Oracle8i Application Developer's Guide - Advanced Queuing
Release 2 (8.1.6)
Part Number A76938-01
What is Oracle Advanced Queuing? , 4 of 7
Oracle AQ has two primary models for the sending and receiving of messages:
As the name suggests, messages in this model are aimed at a specific target. That is, senders and receivers decide upon a common queue in which to exchange messages. Each message is consumed by only one recipient. Figure 1-1, "Point-to-Point Model", shows that each application has its own message queue:
The figure above uses the Native AQ terms Enqueue and Dequeue for the processes of putting a message into a queue and taking a message from a queue. More precisely, Native AQ refers to these queues as Single Consumer Queues because each message is consumed only once. Note that this does not mean that such queues have only one consumer associated with them, but that each messages can be consumed only once.
The JMS equivalent of "enqueue" is Send. The destination of messages for messages is a Queue, without any qualification.
In this model, each message may be consumed by multiple recipients. In contrast to the single-target model of point-to-point messaging, the publish-subscribe model is aimed at a broader dissemination. Even so, the publish-subscribe model has a less-targeted mode (broadcast) as well as one that is more narrowly aimed (multicast).
Conceptually, broadcasting is the equivalent of a radio station not knowing who exactly the audience is for a given program. By contrast, multicast is the same as magazine publisher who knows precisely who the subscribers are. Multicast is also referred to as 'point-to-mulitpoint' because a single publisher sends messages to multiple receivers.
In this context, the notion of broadcasting messages is described in terms of Subscribers to Multi-Consumer Queues. Producers of messages still enqueue messages, but the more targeted mode of publish-subscribe is framed in terms of a targeted list of Recipients who may or may not be subscribers to the queues which serve as exchange mechanisms.
The container of messages for JMS is a Topic, with the idea being that each application can Publish 'on' or Subscribe 'to' a given topic. Put another way: a Topic in JMS maps to a Multi-Consumer Queue in Native AQ. Note that
oracle.jms extends the public JMS standard to allows for defined recipient lists.