Secure Queues
In the Oracle Database environment, queues
can be of type Secure or Non-Secure. When the queues are
created, if they are set up with attribute secure set to TRUE,
they are known as Secure queues. ‘Secure queue’ implies that
only the owner of the queue can perform queue operations such as
dequeue and enqueue; however, database users who are created as
secure users can also perform the queue operations on these
secure queues.
All the queues typically included in the
Streams environment are SYS.AnyData queues which can stage any
data type. All SYS.AnyData queues created by using the
set_up_queue procedure of the dbms_streams_adm
package are secure by default. Thus, the Streams environment
ensures that the queues it uses are only handled by the
appropriate secure and explicit users.
Typed Queue and SYS.AnyData Queue
In the Streams environment, the bulk of the
time the DBA deals with a Sys.AnyData type queue. The Capture
process enqueues events into a SYS.AnyData queue. A SYS.AnyData
queue can stage events of different types. Users and messaging
clients may enqueue events into a SYS.AnyData queue or into a
typed queue. A typed queue can only stage events of one specific
type.
Transactional Queue
When dealing with user enqueued events, a
user application can group the events and enqueue them as a
single unit or single transactions. In such situations, the
Apply process, a consumer, performs a COMMIT only after all the
events in the groups are successfully applied. Queues that deal
with this process are called transactional queues. In the case
of non-transactional queues, each event is a transaction by
itself. Therefore, the Apply process performs a COMMIT after
each user-equeued event is applied.