Home
Home
Customize
Customize
Help
Help
Contact us
Contact Us

Table of Contents for Oracle8i Application Developer's Guide - Advanced Queuing (AQ)

Contents

Title Page

Index

Queuing - an Optimal Means of Handling Messages

Two Contexts for Developing Queuing Applications

Two Models for Queuing Messages

Features of Advanced Queuing (AQ)

Elements of Advanced Queuing (Native AQ)

Reference to Demos

What is Oracle Advanced Queuing?

Data Structures

Enumerated Constants in the Administrative Interface

Enumerated Constants in the Operational Interface

Issues and Considerations

Java Components - oracle.AQ

Basic Components

AQ Operational Interfaces

Programmatic Environments for Accessing AQ

Using PL/SQL (DBMS_AQADM and DBMS_AQ Packages) to Access AQ

Using Visual Basic (OO4O) to Access AQ

Using OCI to Access AQ

Using AQ Java (oracle.AQ) Classes to Access AQ

Using Oracle Java Messaging Service (JMS) to Access AQ

Comparing AQ Programmatic Environments

AQ Administrative Interfaces

AQ Programmatic Environments

Migrating Queue Tables (Import-Export)

Security

Enterprise Manager Support

Protocols

Sample DBA Actions as Preparation for Working with AQ

Current Restrictions

Compatibility

Managing AQ

Performance

Scalability

Propagation Issues

Guidelines for Debugging AQ Propagation Problems

Advanced Topics

Frequently Asked Questions

Modeling Queue Entities

Modeling and Design

A Sample Application

General Features

ENQUEUE Features

DEQUEUE Features

Propagation Features

A Sample Application Using AQ

Drop a Queue

Start a Queue

Stop a Queue

Grant System Privilege

Revoke System Privilege

Grant Queue Privilege

Revoke Queue Privilege

Add a Subscriber

Alter a Subscriber

Remove a Subscriber

Schedule a Queue Propagation

Unschedule a Queue Propagation

Verify a Queue Type

Alter a Propagation Schedule

Enable a Propagation Schedule

Disable a Propagation Schedule

Use Case Model: Administrative Interface -- Basic Operations

Create a Queue Table

Create a Queue Table [Set Storage Clause]

Alter a Queue Table

Drop a Queue Table

Create a Queue

Create a Non-Persistent Queue

Alter a Queue

Administrative Interface

Select Queue Tables in User Schema

Select Queues In User Schema

Select Propagation Schedules in User Schema

Select Queue Subscribers

Select Queue Subscribers and Their Rules

Select the Number of Messages in Different States for the Whole Database

Select the Number of Messages in Different States for Specific Instances

Use Case Model: Administrative Interface -- Views

Select All Queue Tables in Database

Select User Queue Tables

Select All Queues in Database

Select All Propagation Schedules

Select Queues for Which User Has Any Privilege

Select Queues for Which User Has Queue Privilege

Select Messages in Queue Table

Administrative Interface: Views

Listen to One (Many) Multi-Consumer Queue(s)

Dequeue a Message

Dequeue a Message from a Single-Consumer Queue [Specify Options]

Dequeue a Message from a Multi-Consumer Queue [Specify Options]

Register for Notification

Register for Notification [Specify Subscription Name -- Single-Consumer Queue]

Register for Notification [Specify Subscription Name -- Multi-Consumer Queue]

Use Case Model: Operational Interface -- Basic Operations

Enqueue a Message

Enqueue a Message [Specify Options]

Enqueue a Message [Specify Message Properties]

Enqueue a Message [Specify Message Properties [Specify Sender ID]]

Enqueue a Message [Add Payload]

Listen to One (Many) Queue(s)

Listen to One (Many) Single-Consumer Queue(s)

Operational Interface: Basic Operations

A Sample Application

General Features

Point-to-Point Model Features

Publish-Subscribe Model Features

Message Producer Features

Message Consumer Features

Propagation

Creating Applications Using JMS

Create a Queue Table

Create A Queue Table [Specify Queue Table Property]

Get a Queue Table

Specify Destination Properties

Point-to-Point - Create a Queue

Publish-Subscribe - Create a Topic

Grant System Privileges

Revoke System Privileges

Publish-Subscribe - Grant Topic Privileges

Publish-Subscribe - Revoke Topic Privileges

Point-to-Point: Grant Queue Privileges

Point-to-Point: Revoke Queue Privileges

Start a Destination

Stop a Destination

Alter a Destination

Drop a Destination

Schedule a Propagation

Enable a Propagation Schedule

Alter a Propagation Schedule

Disable a Propagation Schedule

Unschedule a Propagation

Use Case Model: JMS Administrative Interface -- Basic Operations

Use Case Model Diagram: JMS Administrative Interface -- Basic Operations

Point-to-Point - Two Ways to Create a Queue Connection Factory

Get a Queue Connection Factory with JDBC URL

Get a Queue Connection Factory with JDBC Connection Parameters

Publish-Subscribe - Two Ways to Create a Topic Connection Factory

Get a Topic Connection Factory with JDBC URL

Get a Topic Connection Factory with JDBC Connection Parameters

JMS Administrative Interface: Basic Operations

Two Ways to Send Messages Using a Queue Sender

Send a Message Using a Queue Sender with Default Send Options

Send Messages Using a Queue Sender by Specifying Send Options

Two Ways to Create a Queue Browser for JMS Message Queues

Create a Queue Browser for Queues with Text, Stream, Objects, Bytes or Map Messages

Create a Queue Browser for Queues with Text, Stream, Objects, Bytes or Map Messages, Locking Messages while Browsing

Two Ways to Create a Queue Browser for Oracle Object Type (ADT) Messages Queues

Create a Queue Browser for Queues of Oracle Object Type (ADT) Messages

Create a Queue Browser for Queues of Oracle Object Type (ADT) Messages, Locking Messages While Browsing

Browse Messages Using a Queue Browser

Two Ways to Create a Queue Receiver

Create a Queue Receiver for Queues of Standard JMS Type Messages

Create a Queue Receiver for Queues of Oracle Object Type (ADT) Messages

Use Case Model: Operational Interface -- Basic Operations

Use Case Model Diagram: Operational Interface (Point-to-Point)

Three Ways to Create a Queue Connection

Create a Queue Connection with Username/Password

Create a Queue Connection with Open JDBC Connection

Create a Queue Connection with Default Connection Factory Parameters

Create a Queue Session

Create a Queue Sender

JMS Operational Interface: Basic Operations (Point-to-Point)

Four Ways to Publish Messages Using a Topic Publisher

Publish a Message with Minimal Specification

Publish a Message Specifying Correlation and Delay

Publish a Message Specifying Priority and Time-To-Live

Publish Messages Specifying a Recipient List Overriding Topic Subscribers

Two Ways to Create a Durable Subscriber for a Topic of Standard JMS Type Messages

Create a Durable Subscriber for a JMS Topic Without Selector

Create a Durable Subscriber for a JMS Topic With Selector

Two Ways to Create a Durable Subscriber for a Topic of Oracle Object Type (ADT) Messages

Create a Durable Subscriber for an ADT Topic Without Selector

Create a Durable Subscriber for an ADT Topic With Selector

Two Ways to Create a Remote Subscriber

Create a Remote Subscriber for Topics of JMS Messages

Create a Remote Subscriber for Topics of Oracle Object Type (ADT) Messages

Two Ways to Unsubscribe a Durable Subscription

Unsubscribe a Durable Subscription for a Local Subscriber

Unsubscribe a Durable Subscription for a Remote Subscriber

Two Ways to Create a Topic Receiver

Create a Topic Receiver for a Topic of Standard JMS Type Messages

Create a Topic Receiver for a Topic of Oracle Object Type (ADT) Messages

Use Case Model: JMS Operational Interface -- Basic Operations (Publish-Subscribe)

Use Case Model Diagram: Operational Interface -- Basic Operations (Publish-Subscribe)

Three Ways to Create a Topic Connection

Create a Topic Connection with Username/Password

Create a Topic Connection with Open JDBC Connection

Create a Topic Connection with Default Connection Factory Parameters

Create a Topic Session

Create a Topic Publisher

JMS Operational Interface: Basic Operations (Publish-Subscribe)

Create a Stream Message

Create an Object Message

Create a Text Message

Create an ADT Message

Specify Message Correlation ID

Specify JMS Message Property

Specify Message Property as Boolean

Specify Message Property as String

Specify Message Property as Int

Specify Message Property as Double

Specify Message Property as Float

Specify Message Property as Byte

Specify Message Property as Long

Specify Message Property as Short

Specify Message Property as Object

Set Default TimeToLive for All Messages Sent by a Message Producer

Set Default Priority for All Messages Sent by a Message Producer

Create an AQjms Agent

Two Ways to Receive a Message Synchronously Using a Message Consumer

Receive a Message Using a Message Consumer by Specifying Timeout

Receive a Message Using a Message Consumer Without Waiting

Specify the Navigation Mode for Receiving Messages

Two Ways to Specify a Message Listener to Receive a Message Asynchronously

Specify a Message Listener at the Message Consumer

Specify a Message Listener at the Session

Get the Correlation ID of a Message

Two Ways to Get the Message ID of a Message

Get the Message ID of a Message as Bytes

Get the Message ID of a Message as a String

Get the JMS Message Property

Get the Message Property as a Boolean

Get the Message Property as a String

Get the Message Property as Int

Get the Message Property as Double

Get the Message Property as Float

Get the Message Property as Byte

Get the Message Property as Long

Get the Message Property as Short

Get the Message Property as Object

Close a Message Producer

Close a Message Consumer

Stop a JMS Connection

Close a JMS Session

Close a JMS Connection

Get the Error Code for the JMS Exception

Get the Error Number for the JMS Exception

Get the Error Message for the JMS Exception

Get the Exception Linked to the JMS Exception

Print the Stack Trace for the JMS Exception

Use Case Model: JMS Operational Interface -- Basic Operations (Shared Interfaces)

Start a JMS Connection

Get the JMS Connection from a Session

Commit All Operations in a Transacted Session

Rollback All Operations in a Transacted Session

Get the Underlying JDBC Connection from a JMS Session

Create a Bytes Message

Create a Map Message

JMS Operational Interface: Basic Operations (Shared Interfaces)

Preface

Information in This Guide

Feature Coverage and Availability

New Features Introduced with Oracle 8.1

Other Guides

How This Book Is Organized

How to Interpret the Diagrams

Links in Online Versions of this Document

Conventions Used in this Guide

Your Comments Are Welcome

Send Us Your Comments

Create Queue Tables and Queues

Enqueue and Dequeue Of Messages

Propagation

Drop AQ Objects

Revoke Roles and Privileges

Deploy AQ with XA

AQ and Memory Usage

Oracle Advanced Queuing by Example

Oracle JMS Classes (part 8)

Oracle JMS Classes (part 9)

Oracle JMS Classes (part 10)

Oracle JMS Classes (part 10 continued)

Interface - javax.jms.BytesMessage

Interface - javax.jms.Connection

Interface - javax.jms.ConnectionFactory

Interface - javax.jms.ConnectionMetaData

Interface - javax.jms.DeliveryMode

Interface - javax.jms.Destination

Interface - javax.jms.MapMessage

Interface - javax.jms.Message

Interface - javax.jms.MessageConsumer

Interface - javax.jms.MessageListener

Interface - javax.jms.MessageProducer

Interface - javax.jms.ObjectMessage

Interface - javax.jms.Queue

Interface - javax.jms.QueueBrowser

Interface - javax.jms.QueueConnection

Interface - javax.jms.QueueConnectionFactory

Interface - javax.jms.QueueReceiver

Interface - javax.jms.QueueSender

Interface - javax.jms.QueueSession

Interface - javax.jms.Session

Interface - javax.jms.StreamMessage

Interface - javax.jms.TextMessage

Interface - javax.jms.Topic

Interface - javax.jms.TopicConnection

Interface - javax.jms.TopicConnectionFactory

Interface - javax.jms.TopicPublisher

Interface - javax.jms.TopicSession

Interface - javax.jms.TopicSubscriber

Exception javax.jms.InvalidDestinationException

Exception javax.jms.InvalidSelectorException

Exception javax.jms.JMSException

Exception javax.jms.MessageEOFException

Exception javax.jms.MessageFormatException

Exception javax.jms.MessageNotReadableException

Exception javax.jms.MesageNotWriteableException

Interface - oracle.jms.AdtMessage

Interface - oracle.jms.AQjmsQueueReceiver

Interface - oracle.jms.AQjmsQueueSender

Interface - oracle.jms.AQjmsTopicPublisher

Interface - oracle.jms.TopicReceiver

Interface - oracle.jms.AQjmsTopicSubscriber

Interface - oracle.jms.AQjmsTopicReceiver

Class - oracle.jms.AQjmsAdtMessage

Class - oracle.jms.AQjmsAgent

Class - oracle.jms.AQjmsBytesMessage

Class - oracle.jms.AQjmsConnection

Interface - oracle.jms.AQjmsConnectionMetadata

Class - oracle.jms.AQjmsConstants

Interface - oracle.jms.AQjmsConsumer

Class - oracle.jms.AQjmsDestination

Class - oracle.jms.AQjmsDestinationProperty

Class - oracle.jms.AQjmsFactory

Class - oracle.jms.AQjmsMapMessage

Class - oracle.jms.AQjmsMessage

Class - oracle.jms.AQjmsObjectMessage

Class - oracle.jms.AQjmsOracleDebug

Class - oracle.jms.AQjmsProducer

Class - oracle.jms.AQjmsQueueBrowser

Class - AQjmsQueueConnectionFactory

Class - oracle.jms.AQjmsSession

Class - oracle.jms.AQjmsStreamMessage

Class - oracle.jms.AQjmsTextMessage

Class - oracle.jms.AQjmsTopicConnectionFactory

Exception oracle.jms.AQjmsException

Exception oracle.jms.AQjmsInvalidDestinationException

Exception oracle.jms.AQjmsInvalidSelectorException

Exception oracle.jms.AQjmsMessageEOFException

Exception oracle.jms.AQjmsMessageFormatException

Exception oracle.jms.AQjmsMessageNotReadableException

Exception oracle.jms.AQjmsMesssageNotWriteableException

Interface - oracle.AQ.AQQueueTable

Class - oracle.AQ.AQQueueTableProperty

Oracle JMSClasses (part 1)

Oracle JMS Classes (part 2)

Oracle JMS Classes (part 3)

Oracle JMS Classes (part 4)

Oracle JMS Classes (part 5)

Oracle JMS Classes (part 6)

Oracle JMS Classes (part 6 continued)

Oracle JMS Classes (part 7)

Oracle JMS Interfaces, Classes and Exceptions

tkaqdoca.sql: Script to Create Users, Objects, Queue Tables, Queues & Subscribers

tkaqdocd.sql: Examples of Administrative and Operational Interfaces

tkaqdoce.sql: Operational Examples

tkaqdocp.sql: Examples of Operational Interfaces

tkaqdocc.sql: Clean-Up Script

Scripts for Implementing 'BooksOnLine'

JMS Error Messages