Programming WebLogic JMS

 Previous Next Contents Index View as PDF  

Introduction to WebLogic JMS

What Is JMS?

Implementation of Java Specifications

J2EE Specification

JMS Specification

WebLogic JMS Features

WebLogic JMS Architecture

Major Components

Clustering Features

WebLogic JMS Extensions

JMS Enhancements in WebLogic Server 7.0

High Availability Enhancement

Distributed Destinations within a WebLogic Cluster

Flow Control

WebLogic Messaging Bridge

Message Paging

WebLogic JMS Fundamentals

Messaging Models

Point-to-Point Messaging

Publish/Subscribe Messaging

Message Persistence

WebLogic JMS Classes

ConnectionFactory

Connection

Session

Non-transacted Session

Transacted Session

Destination

Distributed Destination

MessageProducer and MessageConsumer

Message

Message Header Fields

Message Property Fields

Message Body

ServerSessionPoolFactory

ServerSessionPool

ServerSession

ConnectionConsumer

Managing WebLogic JMS

Configuring WebLogic JMS

Configuring WebLogic JMS Clustering

How JMS Clustering Works

JMS Clustering Naming Requirements

JMS Distributed Destination within a Cluster

JMS as a Migratable Service within a Cluster

Configuration Guidelines for JMS Clustering

What About Failover?

Configuring JMS Migratable Targets

How JMS Migration Works

Configuration Steps for JMS Server Migration

Persistent Store Migration

Migration Failover

Tuning WebLogic JMS

Monitoring WebLogic JMS

Recovering from a WebLogic Server Failure

Developing a WebLogic JMS Application

Application Development Flow

Importing Required Packages

Setting Up a JMS Application

Step 1: Look Up a Connection Factory in JNDI

Step 2: Create a Connection Using the Connection Factory

Create a Queue Connection

Create a Topic Connection

Step 3: Create a Session Using the Connection

Create a Queue Session

Create a Topic Session

Step 4: Look Up a Destination (Queue or Topic)

Server Affinity When Looking Up Destinations

Step 5: Create Message Producers and Message Consumers Using the Session and Destinations

Create QueueSenders and QueueReceivers

Create TopicPublishers and TopicSubscribers

Step 6a: Create the Message Object (Message Producers)

Step 6b: Optionally Register an Asynchronous Message Listener (Message Consumers)

Step 7: Start the Connection

Example: Setting Up a PTP Application

Example: Setting Up a Pub/Sub Application

Sending Messages

Step 1: Create a Message Object

Step 2: Define a Message

Step 3: Send the Message to a Destination

Send a Message Using Queue Sender

Send a Message Using TopicPublisher

Setting Message Producer Attributes

Example: Sending Messages Within a PTP Application

Example: Sending Messages Within a Pub/Sub Application

Receiving Messages

Receiving Messages Asynchronously

Asynchronous Message Pipeline

Receiving Messages Synchronously

Example: Receiving Messages Synchronously Within a PTP Application

Example: Receiving Messages Synchronously Within a Pub/Sub Application

Recovering Received Messages

Acknowledging Received Messages

Releasing Object Resources

Managing Rolled Back, Recovered, or Expired Messages

Setting a Redelivery Delay for Messages

Setting a Redelivery Delay

Overriding the Redelivery Delay on a Destination

Setting a Redelivery Limit for Messages

Configuring a Message Redelivery Limit

Configuring an Error Destination for Undelivered Messages

Passive Message Expiration Policy

Setting Message Delivery Times

Setting a Delivery Time on Producers

Setting a Delivery Time on Messages

Overriding a Delivery Time

Interaction with the Time-to-Live Value

Setting a Relative Time-to-Deliver Override

Setting a Scheduled Time-to-Deliver Override

JMS Schedule Interface

Managing Connections

Defining a Connection Exception Listener

Accessing Connection Metadata

Starting, Stopping, and Closing a Connection

Managing Sessions

Defining a Session Exception Listener

Closing a Session

Creating Destinations Dynamically

Using the JMSHelper Class Methods

Using Temporary Destinations

Creating a Temporary Queue

Creating a Temporary Topic

Deleting a Temporary Destination

Setting Up Durable Subscriptions

Defining the Persistent Store

Defining the Client ID

Creating Subscribers for a Durable Subscription

Deleting Durable Subscriptions

Modifying Durable Subscriptions

Managing Durable Subscriptions

Setting and Browsing Message Header and Property Fields

Setting Message Header Fields

Setting Message Property Fields

Browsing Header and Property Fields

Filtering Messages

Defining Message Selectors Using SQL Statements

Defining XML Message Selectors Using XML Selector Method

Displaying Message Selectors

Indexing Topic Subscriber Message Selectors To Optimize Performance

Defining Server Session Pools

Step 1: Look Up Server Session Pool Factory in JNDI

Step 2: Create a Server Session Pool Using the Server Session Pool Factory

Create a Server Session Pool for Queue Connection Consumers

Create a Server Session Pool for Topic Connection Consumers

Step 3: Create a Connection Consumer

Create a Connection Consumer for Queues

Create a Connection Consumer for Topics

Example: Setting Up a PTP Client Server Session Pool

Example: Setting Up a Pub/Sub Client Server Session Pool

Using Multicasting

Step 1: Set Up the JMS Application, Creating Multicast Session and Topic Subscriber

Step 2: Set Up the Message Listener

Dynamically Configuring Multicasting Configuration Attributes

Example: Multicast TTL

Using Distributed Destinations

Accessing Distributed Destinations

Looking Up Distributed Queues

Looking Up Distributed Topics

Accessing Distributed Destination Members

Load Balancing Messages Across a Distributed Destination

Load Balancing Options

Consumer Load Balancing

Producer Load Balancing

Load Balancing Heuristics

Defeating Load Balancing

How Distributed Destination Load Balancing Is Affected When Using the "Server Affinity Enabled" Attribute

Distributed Destination Migration

Distributed Destination Failover

Using Transactions with WebLogic JMS

Overview of Transactions

Using JMS Transacted Sessions

Step 1: Set Up JMS Application, Creating Transacted Session

Step 2: Perform Desired Operations

Step 3: Commit or Roll Back the JMS Transacted Session

Using JTA User Transactions

Step 1: Set Up JMS Application, Creating Non-Transacted Session

Step 2: Look Up User Transaction in JNDI

Step 3: Start the JTA User Transaction

Step 4: Perform Desired Operations

Step 5: Commit or Roll Back the JTA User Transaction

Asynchronous Messaging Within JTA User Transactions Using Message Driven Beans

Example: JMS and EJB in a JTA User Transaction

Porting WebLogic JMS Applications

Existing Feature Functionality Changes

Existing Feature 5.1 to 6.0 Functionality Changes

Existing Feature 6.0 to 6.1 Functionality Changes

Porting Existing Applications

Before You Begin

Porting Steps for 4.5 and 5.1 Applications to 6.x

Porting Steps for 6.0 Applications to 6.1

Porting Steps for 6.x Applications to 7.0

Deleting JDBC Database Stores

Configuration Checklists

Server Clusters

JTA User Transactions

JMS Transactions

Message Delivery

Asynchronous Message Delivery

Persistent Messages

Concurrent Message Processing

Multicasting

Durable Subscriptions

Destination Sort Order

Temporary Destinations

Thresholds and Quotas

JDBC Database Utility

Overview

About JMS Tables

Regenerating JDBC Database Stores

 

Back to Top Previous Next