bea.com | products | dev2dev | support | askBEA
 Download Docs   Site Map   Glossary 
Search

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 8.1

JMS Thin Client

Accessing Foreign JMS Providers

Accessing JMS via Servlets and EJBs

Better Expired Message Handling

Improved Message Flow Control by Blocking Producers

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

Starting WebLogic Server and Configuring JMS

Starting the Default WebLogic Server

Starting the Administration Console

Configuring a Basic JMS Implementation

Configuring WebLogic JMS Clustering

How JMS Clustering Works

JMS Clustering Requirements

JMS Distributed Destination within a Cluster

JMS as a Migratable Service within a Cluster

Configuration Steps

What About Failover?

Configuring JMS Migratable Targets

How JMS Migration Works

Configuration Steps

Persistent Store Migration

Migration Failover

Tuning WebLogic JMS

Monitoring WebLogic JMS

Recovering from a WebLogic Server Failure

Programming Considerations

Migrating JMS Data to a New Server

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

Dynamically Configuring Message Producer Configuration Attributes

Example: Sending Messages Within a PTP Application

Example: Sending Messages Within a Pub/Sub Application

Receiving Messages

Receiving Messages Asynchronously

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 or Recovered 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

Ordered Redelivery of Rolled Back Messages

Single Consumer

Sort Order

Selection

Message Pipeline Size

Performance Requirements

Setting Message Delivery Times

Setting a Delivery Time on Producers

Setting a Delivery Time on Messages

Overriding a Delivery Time

Setting a Relative Time-to-Deliver Override

Setting a Scheduled Time-to-Deliver Override

JMS Schedule Interface

Interaction with the Time-to-Live Value

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

Deleting Destinations Dynamically

Preconditions for Deleting Destinations

Using the JMSHelper Class Methods

Semantics When Deleting Destinations

Producer, Consumer, and Browser Creation

CLosing of Consumers

Closing of Browsers

Closing of Enumerations

Cancelled Blocking Send Operations

Affected Transactions

Physical Deletion of Existing Messages

Statistics

Using Temporary Destinations

Creating a Temporary Queue

Creating a Temporary Topic

Deleting a Temporary Destination

Setting Up Durable Subscriptions

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

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

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

Using WebLogic JMS with EJBs and Servlets

Overview

J2EE Support for WebLogic JMS

Referencing a JMS Connection Factory

Referencing a JMS Destination

Sending a Message

Under the Covers

Automatically Enlisting Transactions

Container-Managed Security

Connection Testing

J2EE Compliance

Pooled Session Objects

Improving Performance

Speeding Up JNDI Lookups

Speeding Up Object Creation

Using the Right Transaction Mode

Foreign JMS Provider Support

Examples of JMS Wrapper Functions

ejb-jar.xml

weblogic-ejb-jar.xml

PoolTestCMP.java

PoolTestCMPHome.java

PoolTestCMPBean.java

WebLogic JMS Thin Client

Overview

Benefits of Using the JMS Thin Client

Limitations of Using the JMS Thin Client

Deploying the JMS Thin Client

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