09.12.2012 Views

Advanced Queuing - Oracle

Advanced Queuing - Oracle

Advanced Queuing - Oracle

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Elements of <strong>Advanced</strong> <strong>Queuing</strong><br />

Rule<br />

Rule-Based Subscribers<br />

Transformation<br />

Queue Monitor<br />

directed toward specific recipients who may or may not be subscribers to the queue,<br />

thereby overriding the subscriber list.<br />

A rule is used to define one or more subscribers’ interest in subscribing to messages<br />

that conform to that rule. The messages that meet the rule criterion are delivered to<br />

the interested subscribers. A rule is specified as a boolean expression (one that<br />

evaluates to true or false) using syntax similar to the WHERE clause of a SQL query.<br />

The boolean expression can include conditions on the following:<br />

Message properties (currently priority and correlation identifier)<br />

User data properties (object payloads only)<br />

Functions (as specified in the WHERE clause of a SQL query)<br />

A rule-based subscriber is a subscriber with associated rules in the default recipient<br />

list. If an associated rule evaluates to TRUE for a message, the message is sent to the<br />

rule-based subscriber even if the message has no specified recipients.<br />

A transformation defines a mapping from one <strong>Oracle</strong> data type to another. The<br />

transformation is represented by a SQL function that takes the source data type as<br />

input and returns an object of the target data type. A transformation can be<br />

specified during enqueue, to transform the message to the correct type before<br />

inserting it into the queue. It can be specified during dequeue to receive the<br />

message in the desired format. If specified with a remote subscriber, the message<br />

will be transformed before propagating it to the destination queue.<br />

The queue monitor (QMNn) is a background process that monitors messages in<br />

queues. It provides the mechanism for message delay, expiration, and retry delay.<br />

The QMNn also performs garbage collection for the queue table and its indexes and<br />

index-organized tables (IOTs). For example, the QMNn determines when all<br />

subscribers of multiconsumer queues have received a message and subsequently<br />

removes the message from the queue table and supporting indexes and IOTs.<br />

1-24 <strong>Oracle</strong>9i Application Developer’s Guide - <strong>Advanced</strong> <strong>Queuing</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!