Contents

List of Examples

List of Figures

List of Tables

Title and Copyright Information

Send Us Your Comments

Preface

Audience
Documentation Accessibility
Related Documents
Conventions

What's New in Oracle Streams AQ?

Notification Enhancements
Better Diagnosability and Manageability
Transition from Job Queue Processes to Database Scheduler
Messaging Gateway Enhancements

Part I Oracle Streams AQ Fundamentals

1 Introduction to Oracle Streams AQ

1.1 What Is Queuing?
1.2 Oracle Streams AQ Leverages Oracle Database
1.3 Oracle Streams AQ in Integrated Application Environments
1.3.1 Oracle Streams AQ Client/Server Communication
1.3.2 Multiconsumer Dequeuing of the Same Message
1.3.3 Oracle Streams AQ Implementation of Workflows
1.3.4 Oracle Streams AQ Implementation of Publish/Subscribe
1.4 Buffered Messaging
1.5 Asynchronous Notifications
1.5.1 Views on Registration
1.5.2 Event-Based Notification
1.5.3 Notification Grouping by Time
1.6 Enqueue Features
1.7 Dequeue Features
1.8 Propagation Features
1.9 Message Format Transformation
1.10 Other Oracle Streams AQ Features
1.11 Interfaces to Oracle Streams AQ
1.12 Oracle Streams AQ Demonstrations

2 Basic Components

2.1 Object Name
2.2 Type Name
2.3 AQ Agent Type
2.4 AQ Recipient List Type
2.5 AQ Agent List Type
2.6 AQ Subscriber List Type
2.7 AQ Registration Information List Type
2.8 AQ Post Information List Type
2.9 AQ Registration Information Type
2.10 AQ Notification Descriptor Type
2.11 AQ Message Properties Type
2.12 AQ Post Information Type
2.13 AQ$_NTFN_MSGID_ARRAY Type
2.14 Enumerated Constants in the Oracle Streams AQ Administrative Interface
2.15 Enumerated Constants in the Oracle Streams AQ Operational Interface
2.16 AQ Background Processes
2.16.1 Queue Monitor Processes
2.16.2 Job Queue Processes

3 Oracle Streams AQ: Programmatic Interfaces

3.1 Programmatic Interfaces for Accessing Oracle Streams AQ
3.2 Using PL/SQL to Access Oracle Streams AQ
3.3 Using OCI to Access Oracle Streams AQ
3.4 Using OCCI to Access Oracle Streams AQ
3.5 Using Visual Basic (OO4O) to Access Oracle Streams AQ
3.6 Using Oracle Java Message Service (OJMS) to Access Oracle Streams AQ
3.6.1 Accessing Standard and Oracle JMS Applications
3.7 Using Oracle Streams AQ XML Servlet to Access Oracle Streams AQ
3.8 Comparing Oracle Streams AQ Programmatic Interfaces
3.8.1 Oracle Streams AQ Administrative Interfaces
3.8.2 Oracle Streams AQ Operational Interfaces

Part II Managing and Tuning Oracle Streams AQ

4 Managing Oracle Streams AQ

4.1 Oracle Streams AQ Compatibility Parameters
4.2 Queue Security and Access Control
4.2.1 Oracle Streams AQ Security
4.2.1.1 Administrator Role
4.2.1.2 User Role
4.2.1.3 Access to Oracle Streams AQ Object Types
4.2.2 Queue Security
4.2.3 Queue Privileges and Access Control
4.2.4 OCI Applications and Queue Access
4.2.5 Security Required for Propagation
4.3 Queue Table Export-Import
4.3.1 Exporting Queue Table Data
4.3.2 Importing Queue Table Data
4.3.3 Data Pump Export and Import
4.4 Oracle Enterprise Manager Support
4.5 Using Oracle Streams AQ with XA
4.6 Restrictions on Queue Management
4.6.1 Subscribers
4.6.2 DML Not Supported on Queue Tables or Associated IOTs
4.6.3 Propagation from Object Queues with REF Payload Attributes
4.6.4 Collection Types in Message Payloads
4.6.5 Synonyms on Queue Tables and Queues
4.6.6 Synonyms on Object Types
4.6.7 Tablespace Point-in-Time Recovery
4.6.8 Virtual Private Database
4.7 Managing Propagation
4.7.1 EXECUTE Privileges Required for Propagation
4.7.2 Propagation from Object Queues
4.7.3 Optimizing Propagation
4.7.4 Handling Failures in Propagation

5 Oracle Streams AQ Performance and Scalability

5.1 Persistent Messaging Performance Overview
5.1.1 Oracle Streams AQ and Oracle Real Application Clusters
5.1.2 Oracle Streams AQ in a Shared Server Environment
5.2 Persistent Messaging Basic Tuning Tips
5.2.1 Using Storage Parameters
5.2.2 I/O Configuration
5.2.3 Running Enqueue and Dequeue Processes Concurrently in a Single Queue Table
5.2.4 Running Enqueue and Dequeue Processes Serially in a Single Queue Table
5.2.5 Creating Indexes on a Queue Table
5.2.6 Other Tips
5.3 Propagation Tuning Tips
5.4 Buffered Messaging Tuning
5.5 Performance Views

6 Internet Access to Oracle Streams AQ

6.1 Overview of Oracle Streams AQ Operations over the Internet
6.1.1 Oracle Streams AQ Internet Operations Architecture
6.1.2 Internet Message Payloads
6.1.3 Configuring the Web Server to Authenticate Users Sending POST Requests
6.1.4 Client Requests Using HTTP
6.1.4.1 User Sessions and Transactions
6.1.5 Oracle Streams AQ Servlet Responses Using HTTP
6.1.6 Oracle Streams AQ Propagation Using HTTP and HTTPS
6.2 Deploying the Oracle Streams AQ XML Servlet
6.3 Internet Data Access Presentation (IDAP)
6.3.1 SOAP Message Structure
6.3.1.1 SOAP Envelope
6.3.1.2 SOAP Header
6.3.1.3 SOAP Body
6.3.2 SOAP Method Invocation
6.3.2.1 HTTP Headers
6.3.2.2 Method Invocation Body
6.3.2.3 Results from a Method Request
6.4 Request and Response IDAP Documents
6.4.1 IDAP Client Requests for Enqueue
6.4.2 IDAP Client Requests for Dequeue
6.4.3 IDAP Client Requests for Registration
6.4.4 IDAP Client Requests to Commit a Transaction
6.4.5 IDAP Client Requests to Roll Back a Transaction
6.4.6 IDAP Server Response to an Enqueue Request
6.4.7 IDAP Server Response to a Dequeue Request
6.4.8 IDAP Server Response to a Register Request
6.4.9 IDAP Commit Response
6.4.10 IDAP Rollback Response
6.4.11 IDAP Notification
6.4.12 IDAP Response in Case of Error
6.5 Notification of Messages by e-mail

7 Troubleshooting Oracle Streams AQ

7.1 Debugging Oracle Streams AQ Propagation Problems
7.2 Oracle Streams AQ Error Messages

Part III Oracle Streams AQ Administrative and Operational Interfaces

8 Oracle Streams AQ Administrative Interface

8.1 Managing Queue Tables
8.1.1 Creating a Queue Table
8.1.2 Altering a Queue Table
8.1.3 Dropping a Queue Table
8.1.4 Purging a Queue Table
8.1.5 Migrating a Queue Table
8.2 Managing Queues
8.2.1 Creating a Queue
8.2.2 Altering a Queue
8.2.3 Starting a Queue
8.2.4 Stopping a Queue
8.2.5 Dropping a Queue
8.3 Managing Transformations
8.3.1 Creating a Transformation
8.3.2 Modifying a Transformation
8.3.3 Dropping a Transformation
8.4 Granting and Revoking Privileges
8.4.1 Granting Oracle Streams AQ System Privileges
8.4.2 Revoking Oracle Streams AQ System Privileges
8.4.3 Granting Queue Privileges
8.4.4 Revoking Queue Privileges
8.5 Managing Subscribers
8.5.1 Adding a Subscriber
8.5.2 Altering a Subscriber
8.5.3 Removing a Subscriber
8.6 Managing Propagations
8.6.1 Scheduling a Queue Propagation
8.6.2 Verifying Propagation Queue Type
8.6.3 Altering a Propagation Schedule
8.6.4 Enabling a Propagation Schedule
8.6.5 Disabling a Propagation Schedule
8.6.6 Unscheduling a Queue Propagation
8.7 Managing Oracle Streams AQ Agents
8.7.1 Creating an Oracle Streams AQ Agent
8.7.2 Altering an Oracle Streams AQ Agent
8.7.3 Dropping an Oracle Streams AQ Agent
8.7.4 Enabling Database Access
8.7.5 Disabling Database Access
8.8 Adding an Alias to the LDAP Server
8.9 Deleting an Alias from the LDAP Server

9 Oracle Streams AQ & Messaging Gateway Views

9.1 DBA_QUEUE_TABLES: All Queue Tables in Database
9.2 USER_QUEUE_TABLES: Queue Tables in User Schema
9.3 ALL_QUEUE_TABLES: Queue Tables Queue Accessible to the Current User
9.4 DBA_QUEUES: All Queues in Database
9.5 USER_QUEUES: Queues In User Schema
9.6 ALL_QUEUES: Queues for Which User Has Any Privilege
9.7 DBA_QUEUE_SCHEDULES: All Propagation Schedules
9.8 USER_QUEUE_SCHEDULES: Propagation Schedules in User Schema
9.9 QUEUE_PRIVILEGES: Queues for Which User Has Queue Privilege
9.10 AQ$Queue_Table_Name: Messages in Queue Table
9.11 AQ$Queue_Table_Name_S: Queue Subscribers
9.12 AQ$Queue_Table_Name_R: Queue Subscribers and Their Rules
9.13 DBA_QUEUE_SUBSCRIBERS: All Queue Subscribers in Database
9.14 USER_QUEUE_SUBSCRIBERS: Queue Subscribers in User Schema
9.15 ALL_QUEUE_SUBSCRIBERS: Subscribers for Queues Where User Has Queue Privileges
9.16 DBA_TRANSFORMATIONS: All Transformations
9.17 DBA_ATTRIBUTE_TRANSFORMATIONS: All Transformation Functions
9.18 USER_TRANSFORMATIONS: User Transformations
9.19 USER_ATTRIBUTE_TRANSFORMATIONS: User Transformation Functions
9.20 DBA_SUBSCR_REGISTRATIONS: All Subscription Registrations
9.21 USER_SUBSCR_REGISTRATIONS: User Subscription Registrations
9.22 AQ$INTERNET_USERS: Oracle Streams AQ Agents Registered for Internet Access
9.23 (G)V$AQ: Number of Messages in Different States in Database
9.24 (G)V$BUFFERED_QUEUES: All Buffered Queues in the Instance.
9.25 (G)V$BUFFERED_SUBSCRIBERS: Subscribers for All Buffered Queues in the Instance
9.26 (G)V$BUFFERED_PUBLISHERS: All Buffered Publishers in the Instance
9.27 (G)V$PERSISTENT_QUEUES: All Active Persistent Queues in the Instance
9.28 (G)V$PERSISTENT_SUBSCRIBERS: All Active Subscribers of the Persistent Queues in the Instance
9.29 (G)V$PERSISTENT_PUBLISHERS: All Active Publishers of the Persistent Queues in the Instance
9.30 (G)V$PROPAGATION_SENDER: Buffer Queue Propagation Schedules on the Sending (Source) Side
9.31 (G)V$PROPAGATION_RECEIVER: Buffer Queue Propagation Schedules on the Receiving (Destination) Side
9.32 (G)V$SUBSCR_REGISTRATION_STATS: Diagnosability of Notifications
9.33 V$METRICGROUP: Information about the Metric Group
9.34 (G)V$STREAMSMETRIC: Streams Metrics for the Most Recent Interval
9.35 (G)V$STREAMSMETRIC_HISTORY: Streams Metrics Over Past Hour
9.36 (G)V$QUEUEMETRIC: Queue Metrics for the Most Recent Interval
9.37 (G)V$QUEUEMETRIC_HISTORY: Queue Metrics Over Past Hour
9.38 DBA_HIST_STREAMSMETRIC: Streams Metric History
9.39 DBA_HIST_QUEUEMETRIC: Queue Metric History
9.40 MGW_GATEWAY: Configuration and Status Information
9.41 MGW_AGENT_OPTIONS: Supplemental Options and Properties
9.42 MGW_LINKS: Names and Types of Messaging System Links
9.43 MGW_MQSERIES_LINKS: WebSphere MQ Messaging System Links
9.44 MGW_TIBRV_LINKS: TIB/Rendezvous Messaging System Links
9.45 MGW_FOREIGN_QUEUES: Foreign Queues
9.46 MGW_JOBS: Messaging Gateway Propagation Jobs
9.47 MGW_SUBSCRIBERS: Information for Subscribers
9.48 MGW_SCHEDULES: Information about Schedules

10 Oracle Streams AQ Operations Using PL/SQL

10.1 Using Secure Queues
10.2 Enqueuing Messages
10.3 Enqueuing an Array of Messages
10.4 Listening to One or More Queues
10.5 Dequeuing Messages
10.6 Dequeuing an Array of Messages
10.7 Registering for Notification
10.8 Unregistering for Notification
10.9 Posting for Subscriber Notification
10.10 Adding an Agent to the LDAP Server
10.11 Removing an Agent from the LDAP Server

Part IV Using Oracle JMS and Oracle Streams AQ

11 Introducing Oracle JMS

11.1 General Features of JMS and Oracle JMS
11.1.1 JMS Connection and Session
11.1.1.1 ConnectionFactory Objects
11.1.1.2 Using AQjmsFactory to Obtain ConnectionFactory Objects
11.1.1.3 Using JNDI to Look Up ConnectionFactory Objects
11.1.1.4 JMS Connection
11.1.1.5 JMS Session
11.1.2 JMS Destination
11.1.2.1 Using a JMS Session to Obtain Destination Objects
11.1.2.2 Using JNDI to Look Up Destination Objects
11.1.2.3 JMS Destination Methods
11.1.3 System-Level Access Control in JMS
11.1.4 Destination-Level Access Control in JMS
11.1.5 Retention and Message History in JMS
11.1.6 Supporting Oracle Real Application Clusters in JMS
11.1.7 Supporting Statistics Views in JMS
11.2 Structured Payload/Message Types in JMS
11.2.1 JMS Message Headers
11.2.2 JMS Message Properties
11.2.3 JMS Message Bodies
11.2.3.1 StreamMessage
11.2.3.2 BytesMessage
11.2.3.3 MapMessage
11.2.3.4 TextMessage
11.2.3.5 ObjectMessage
11.2.3.6 AdtMessage
11.2.4 Using Message Properties with Different Message Types
11.2.5 Buffered Messaging with Oracle JMS
11.3 JMS Point-to-Point Model Features
11.4 JMS Publish/Subscribe Model Features
11.4.1 JMS Publish/Subscribe Overview
11.4.2 DurableSubscriber
11.4.3 RemoteSubscriber
11.4.4 TopicPublisher
11.4.5 Recipient Lists
11.4.6 TopicReceiver
11.4.7 TopicBrowser
11.4.8 Setting Up JMS Publish/Subscribe Operations
11.5 JMS MessageProducer Features
11.5.1 Priority and Ordering of Messages
11.5.2 Specifying a Message Delay
11.5.3 Specifying a Message Expiration
11.5.4 Message Grouping
11.6 JMS Message Consumer Features
11.6.1 Receiving Messages
11.6.2 Message Navigation in Receive
11.6.3 Browsing Messages
11.6.4 Remove No Data
11.6.5 Retry with Delay Interval
11.6.6 Asynchronously Receiving Messages Using MessageListener
11.6.7 Exception Queues
11.7 JMS Propagation
11.7.1 RemoteSubscriber
11.7.2 Scheduling Propagation
11.7.3 Enhanced Propagation Scheduling Capabilities
11.7.4 Exception Handling During Propagation
11.8 Message Transformation with JMS AQ
11.9 J2EE Compliance

12 Oracle JMS Basic Operations

12.1 EXECUTE Privilege on DBMS_AQIN
12.2 Registering a ConnectionFactory
12.2.1 Registering Through the Database Using JDBC Connection Parameters
12.2.2 Registering Through the Database Using a JDBC URL
12.2.3 Registering Through LDAP Using JDBC Connection Parameters
12.2.4 Registering Through LDAP Using a JDBC URL
12.3 Unregistering a Queue/Topic ConnectionFactory
12.3.1 Unregistering Through the Database
12.3.2 Unregistering Through LDAP
12.4 Getting a QueueConnectionFactory or TopicConnectionFactory
12.4.1 Getting a QueueConnectionFactory with JDBC URL
12.4.2 Getting a QueueConnectionFactory with JDBC Connection Parameters
12.4.3 Getting a TopicConnectionFactory with JDBC URL
12.4.4 Getting a TopicConnectionFactory with JDBC Connection Parameters
12.4.5 Getting a QueueConnectionFactory or TopicConnectionFactory in LDAP
12.5 Getting a Queue or Topic in LDAP
12.6 Creating a Queue Table
12.7 Getting a Queue Table
12.8 Creating a Queue
12.8.1 Creating a Point-to-Point Queue
12.8.2 Creating a Publish/Subscribe Topic
12.9 Granting and Revoking Privileges
12.9.1 Granting Oracle Streams AQ System Privileges
12.9.2 Revoking Oracle Streams AQ System Privileges
12.9.3 Granting Publish/Subscribe Topic Privileges
12.9.4 Revoking Publish/Subscribe Topic Privileges
12.9.5 Granting Point-to-Point Queue Privileges
12.9.6 Revoking Point-to-Point Queue Privileges
12.10 Managing Destinations
12.10.1 Starting a Destination
12.10.2 Stopping a Destination
12.10.3 Altering a Destination
12.10.4 Dropping a Destination
12.11 Propagation Schedules
12.11.1 Scheduling a Propagation
12.11.2 Enabling a Propagation Schedule
12.11.3 Altering a Propagation Schedule
12.11.4 Disabling a Propagation Schedule
12.11.5 Unscheduling a Propagation

13 Oracle JMS Point-to-Point

13.1 Creating a Connection with Username/Password
13.2 Creating a Connection with Default ConnectionFactory Parameters
13.3 Creating a QueueConnection with Username/Password
13.4 Creating a QueueConnection with an Open JDBC Connection
13.5 Creating a QueueConnection with Default ConnectionFactory Parameters
13.6 Creating a QueueConnection with an Open OracleOCIConnectionPool
13.7 Creating a Session
13.8 Creating a QueueSession
13.9 Creating a QueueSender
13.10 Sending Messages Using a QueueSender with Default Send Options
13.11 Sending Messages Using a QueueSender by Specifying Send Options
13.12 Creating a QueueBrowser for Standard JMS Type Messages
13.13 Creating a QueueBrowser for Standard JMS Type Messages, Locking Messages
13.14 Creating a QueueBrowser for Oracle Object Type Messages
13.15 Creating a QueueBrowser for Oracle Object Type Messages, Locking Messages
13.16 Creating a QueueReceiver for Standard JMS Type Messages
13.17 Creating a QueueReceiver for Oracle Object Type Messages

14 Oracle JMS Publish/Subscribe

14.1 Creating a Connection with Username/Password
14.2 Creating a Connection with Default ConnectionFactory Parameters
14.3 Creating a TopicConnection with Username/Password
14.4 Creating a TopicConnection with Open JDBC Connection
14.5 Creating a TopicConnection with an Open OracleOCIConnectionPool
14.6 Creating a Session
14.7 Creating a TopicSession
14.8 Creating a TopicPublisher
14.9 Publishing Messages with Minimal Specification
14.10 Publishing Messages Specifying Topic
14.11 Publishing Messages Specifying Delivery Mode, Priority and TimeToLive
14.12 Publishing Messages Specifying a Recipient List
14.13 Creating a DurableSubscriber for a JMS Topic Without Selector
14.14 Creating a DurableSubscriber for a JMS Topic With Selector
14.15 Creating a DurableSubscriber for an Oracle Object Type Topic Without Selector
14.16 Creating a DurableSubscriber for an Oracle Object Type Topic With Selector
14.17 Specifying Transformations for Topic Subscribers
14.18 Creating a Remote Subscriber for JMS Messages
14.19 Creating a Remote Subscriber for Oracle Object Type Messages
14.20 Specifying Transformations for Remote Subscribers
14.21 Unsubscribing a Durable Subscription for a Local Subscriber
14.22 Unsubscribing a Durable Subscription for a Remote Subscriber
14.23 Creating a TopicReceiver for a Topic of Standard JMS Type Messages
14.24 Creating a TopicReceiver for a Topic of Oracle Object Type Messages
14.25 Creating a TopicBrowser for Standard JMS Messages
14.26 Creating a TopicBrowser for Standard JMS Messages, Locking Messages
14.27 Creating a TopicBrowser for Oracle Object Type Messages
14.28 Creating a TopicBrowser for Oracle Object Type Messages, Locking Messages
14.29 Browsing Messages Using a TopicBrowser

15 Oracle JMS Shared Interfaces

15.1 Oracle Streams AQ JMS Operational Interface: Shared Interfaces
15.1.1 Starting a JMS Connection
15.1.2 Getting a JMS Connection
15.1.3 Committing All Operations in a Session
15.1.4 Rolling Back All Operations in a Session
15.1.5 Getting the JDBC Connection from a Session
15.1.6 Getting the OracleOCIConnectionPool from a JMS Connection
15.1.7 Creating a BytesMessage
15.1.8 Creating a MapMessage
15.1.9 Creating a StreamMessage
15.1.10 Creating an ObjectMessage
15.1.11 Creating a TextMessage
15.1.12 Creating a JMS Message
15.1.13 Creating an AdtMessage
15.1.14 Setting JMS Correlation Identifier
15.2 Specifying JMS Message Properties
15.2.1 Setting a Boolean Message Property
15.2.2 Setting a String Message Property
15.2.3 Setting an Integer Message Property
15.2.4 Setting a Double Message Property
15.2.5 Setting a Float Message Property
15.2.6 Setting a Byte Message Property
15.2.7 Setting a Long Message Property
15.2.8 Setting a Short Message Property
15.2.9 Setting an Object Message Property
15.3 Setting Default TimeToLive for All Messages Sent by a MessageProducer
15.4 Setting Default Priority for All Messages Sent by a MessageProducer
15.5 Creating an AQjms Agent
15.6 Receiving a Message Synchronously
15.6.1 Using a Message Consumer by Specifying Timeout
15.6.2 Using a Message Consumer Without Waiting
15.6.3 Receiving Messages from a Destination Using a Transformation
15.7 Specifying the Navigation Mode for Receiving Messages
15.8 Receiving a Message Asynchronously
15.8.1 Specifying a Message Listener at the Message Consumer
15.8.2 Specifying a Message Listener at the Session
15.9 Getting Message ID
15.9.1 Getting the Correlation Identifier
15.9.2 Getting the Message Identifier
15.10 Getting JMS Message Properties
15.10.1 Getting a Boolean Message Property
15.10.2 Getting a String Message Property
15.10.3 Getting an Integer Message Property
15.10.4 Getting a Double Message Property
15.10.5 Getting a Float Message Property
15.10.6 Getting a Byte Message Property
15.10.7 Getting a Long Message Property
15.10.8 Getting a Short Message Property
15.10.9 Getting an Object Message Property
15.11 Closing and Shutting Down
15.11.1 Closing a MessageProducer
15.11.2 Closing a Message Consumer
15.11.3 Stopping a JMS Connection
15.11.4 Closing a JMS Session
15.11.5 Closing a JMS Connection
15.12 Troubleshooting
15.12.1 Getting a JMS Error Code
15.12.2 Getting a JMS Error Number
15.12.3 Getting an Exception Linked to a JMS Exception
15.12.4 Printing the Stack Trace for a JMS Exception
15.12.5 Setting an Exception Listener
15.12.6 Getting an Exception Listener

16 Oracle JMS Types Examples

16.1 How to Run the Oracle Streams AQ JMS Type Examples
16.1.1 Setting Up the Examples
16.2 JMS BytesMessage Examples
16.3 JMS StreamMessage Examples
16.4 JMS MapMessage Examples
16.5 More Oracle Streams AQ JMS Examples

Part V Using Messaging Gateway

17 Introducing Oracle Messaging Gateway

17.1 Introducing Oracle Messaging Gateway
17.2 Oracle Messaging Gateway Features
17.3 Oracle Messaging Gateway Architecture
17.3.1 Administration Package DBMS_MGWADM
17.3.2 Oracle Messaging Gateway Agent
17.3.3 Oracle Database
17.3.4 Non-Oracle Messaging Systems
17.4 Propagation Processing Overview
17.5 Oracle Streams AQ Buffered Messages and Messaging Gateway

18 Getting Started with Oracle Messaging Gateway

18.1 Oracle Messaging Gateway Prerequisites
18.2 Loading and Setting Up Oracle Messaging Gateway
18.2.1 Loading Database Objects into the Database
18.2.2 Modifying listener.ora for the External Procedure
18.2.3 Modifying tnsnames.ora for the External Procedure
18.2.4 Setting Up a mgw.ora Initialization File
18.2.5 Creating an Oracle Messaging Gateway Administration User
18.2.6 Creating an Oracle Messaging Gateway Agent User
18.2.7 Configuring Oracle Messaging Gateway Connection Information
18.2.8 Configuring Oracle Messaging Gateway in a RAC Environment
18.2.8.1 Configuring Connection Information for the MGW Agent Connections
18.2.8.2 Setting the RAC Instance for the Messaging Gateway Agent
18.3 Setting Up Non-Oracle Messaging Systems
18.3.1 Setting Up for TIB/Rendezvous
18.3.2 Setting Up for WebSphere MQ Base Java or JMS
18.4 Verifying the Oracle Messaging Gateway Setup
18.5 Unloading Oracle Messaging Gateway
18.6 Understanding the mgw.ora Initialization File
18.6.1 mgw.ora Initialization Parameters
18.6.2 mgw.ora Environment Variables
18.6.3 mgw.ora Java Properties
18.6.4 mgw.ora Comment Lines

19 Working with Oracle Messaging Gateway

19.1 Configuring the Oracle Messaging Gateway Agent
19.1.1 Creating a Messaging Gateway Agent
19.1.2 Removing a Messaging Gateway Agent
19.1.3 Database Connection
19.1.4 Resource Limits
19.2 Starting and Shutting Down the Oracle Messaging Gateway Agent
19.2.1 Starting the Oracle Messaging Gateway Agent
19.2.2 Shutting Down the Oracle Messaging Gateway Agent
19.2.3 Oracle Messaging Gateway Agent Scheduler Job
19.2.4 Running the Oracle Messaging Gateway Agent on RAC
19.3 Configuring Messaging System Links
19.3.1 Creating a WebSphere MQ Base Java Link
19.3.2 Creating a WebSphere MQ JMS Link
19.3.3 Creating a WebSphere MQ Link to Use SSL
19.3.4 Creating a TIB/Rendezvous Link
19.3.5 Altering a Messaging System Link
19.3.6 Removing a Messaging System Link
19.3.7 Views for Messaging System Links
19.4 Configuring Non-Oracle Messaging System Queues
19.4.1 Registering a Non-Oracle Queue
19.4.1.1 Registering a WebSphere MQ Base Java Queue
19.4.1.2 Registering a WebSphere MQ JMS Queue or Topic
19.4.1.3 Registering a TIB/Rendezvous Subject
19.4.2 Unregistering a Non-Oracle Queue
19.4.3 View for Registered Non-Oracle Queues
19.5 Configuring Oracle Messaging Gateway Propagation Jobs
19.5.1 Propagation Job Overview
19.5.2 Creating an Oracle Messaging Gateway Propagation Job
19.5.3 Enabling and Disabling a Propagation Job
19.5.4 Resetting a Propagation Job
19.5.5 Altering a Propagation Job
19.5.6 Removing a Propagation Job
19.6 Propagation Jobs, Subscribers, and Schedules
19.6.1 Propagation Job, Subscriber, Schedule Interface Interoperability
19.6.2 Propagation Job, Subscriber, Schedule Views
19.6.3 Single Consumer Queue As Propagation Source
19.7 Configuration Properties
19.7.1 WebSphere MQ System Properties
19.7.2 TIB/Rendezvous System Properties
19.7.3 Optional Link Configuration Properties
19.7.4 Optional Foreign Queue Configuration Properties
19.7.5 Optional Job Configuration Properties

20 Oracle Messaging Gateway Message Conversion

20.1 Converting Oracle Messaging Gateway Non-JMS Messages
20.1.1 Overview of the Non-JMS Message Conversion Process
20.1.2 Oracle Messaging Gateway Canonical Types
20.1.3 Message Header Conversion
20.1.4 Handling Arbitrary Payload Types Using Message Transformations
20.1.5 Handling Logical Change Records
20.2 Message Conversion for WebSphere MQ
20.2.1 WebSphere MQ Message Header Mappings
20.2.2 WebSphere MQ Outbound Propagation
20.2.3 WebSphere MQ Inbound Propagation
20.3 Message Conversion for TIB/Rendezvous
20.3.1 AQ Message Property Mapping for TIB/Rendezvous
20.3.2 TIB/Rendezvous Outbound Propagation
20.3.3 TIB/Rendezvous Inbound Propagation
20.4 JMS Messages
20.4.1 JMS Outbound Propagation
20.4.2 JMS Inbound Propagation

21 Monitoring Oracle Messaging Gateway

21.1 Oracle Messaging Gateway Log Files
21.1.1 Sample Oracle Messaging Gateway Log File
21.1.2 Interpreting Exception Messages in an Oracle Messaging Gateway Log File
21.2 Monitoring the Oracle Messaging Gateway Agent Status
21.2.1 MGW_GATEWAY View
21.2.2 Oracle Messaging Gateway Irrecoverable Error Messages
21.2.3 Other Oracle Messaging Gateway Error Conditions
21.3 Monitoring Oracle Messaging Gateway Propagation
21.4 Oracle Messaging Gateway Agent Error Messages

Part VI Using Oracle Streams with Oracle Streams AQ

22 Using ANYDATA Queues for User Messages

22.1 ANYDATA Queues and User Messages
22.1.1 ANYDATA Wrapper for User Messages Payloads
22.1.2 Programmatic Interfaces for Enqueue and Dequeue of User Messages
22.1.2.1 Enqueuing User Messages Using PL/SQL
22.1.2.2 Enqueuing User Messages Using OCI or JMS
22.1.2.3 Dequeuing User Messages Using PL/SQL
22.1.2.4 Dequeuing User Messages Using OCI or JMS
22.2 Message Propagation and ANYDATA Queues
22.3 Enqueuing User Messages in ANYDATA Queues
22.4 Dequeuing User Messages from ANYDATA Queues
22.5 Propagating User Messages from ANYDATA Queues to Typed Queues
22.6 Propagating User-Enqueued LCRs from ANYDATA Queues to Typed Queues

23 Oracle Streams Messaging Example

23.1 Overview of Messaging Example
23.2 Setting Up Users and Creating an ANYDATA Queue
23.3 Creating Enqueue Procedures
23.4 Configuring an Apply Process
23.5 Configuring Explicit Dequeue
23.6 Enqueuing Messages
23.7 Dequeuing Messages Explicitly and Querying for Applied Messages
23.8 Enqueuing and Dequeuing Messages Using JMS

A Nonpersistent Queues

A.1 Creating Nonpersistent Queues
A.2 Managing Nonpersistent Queues
A.3 Compatibility of Nonpersistent Queues
A.4 Nonpersistent Queue Notification
A.5 Restrictions on Nonpersistent Queues

Index