About those Queues

Throughout our discussion on the Streams processes, we mention the Advanced Queues used by Streams to transport changes. These queues are either in-memory (buffered queues) or tables on disk (persistent queues). Oracle Streams uses both buffered queues and persistent queues. A buffered queue can only be an ANYDATA queue, while a persistent queue can be an ANYDATA or a TYPED queue.

ANYDATA and TYPED refer to the payload datatype of the message handled by the queue. An ANYDATA queue's payload is of the SYS.ANYDATA datatype. A TYPED queue has a specific datatype (such as Varchar2, CLOB, BLOB, Number). To determine the payload type of a queue, query the OBJECT_TYPE column of the DBA_QUEUE_TABLES view.

select owner, queue_table, object_type from dba_queue_tables;

The Oracle memory segment used by buffered queues is part of the STREAMS_POOL in the SGA. The type of queue used by Streams depends on the type of LCR that is being stored. Captured and buffered LCRs are stored in buffered queues. Persistent LCRs are stored in persistent queues.

For more information on Streams Queues, review the Introduction to Message Staging and Propagation section of the Oracle Streams Concepts and Administration user's manual.

It is always helpful to understand the whole picture and the pieces that make up the picture. As such, we start with the image as follows:

About those Queues

We use the image above as a reference in this chapter to explain the following processes:

  • Capture
  • Instantiation (Not in image above)
  • Propagate
  • Apply

So, let us start covering each of the main processes and components and it's role in the Streams environment.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.222.125.171