Table of Contents
- Title and Copyright Information
- Preface
-
1
Understanding WebLogic JMS
- Overview of the Java Message Service and WebLogic JMS
- Understanding the Messaging Models
- Understanding the JMS API
- Value-Added Public JMS API Extensions
-
2
Best Practices for Application Design
- Message Design
- Message Compression
- Message Properties and Message Header Fields
- Message Ordering
- Topics Vs. Queues
- Asynchronous Vs. Synchronous Consumers
- Persistent Vs. Non Persistent Messages
- Deferring Acknowledges and Commits
- Using AUTO_ACK for Non Durable Subscribers
- Alternative Qualities of Service, Multicast and No-Acknowledge
- Avoid Multi threading
- Using the JMSXUserID Property
- Performance and Tuning
-
3
Enhanced Support for Using WebLogic JMS with EJBs and Servlets
-
Enabling WebLogic JMS Wrappers
- Declaring a JMSContext Object Using @Inject Annotation
- Declaring JMS Objects as Resources In the EJB or Servlet Deployment Descriptors
- Referencing a Packaged JMS Application Module In Deployment Descriptor Files
- Declaring JMS Destinations and Connection Factories Using Annotations
- Avoid Transactional XA Interfaces
- Disabling Wrapping and Pooling
- What's Happening Under the JMS Wrapper Covers
- Improving Performance Through Pooling
- Simplified Access to Foreign JMS Providers
- Examples of JMS Wrapper Functions
-
Enabling WebLogic JMS Wrappers
- 4 Understanding the Simplified API Programming Model
-
5
Developing a Basic JMS Application
- Importing Required Packages
-
Setting Up a JMS Application
- Using a Simplified API to Set Up a JMS Application
-
Using the Classic API to Set Up a JMS Application
- Step 1: Look Up a Connection Factory in JNDI
- Step 2: Create a Connection Using the Connection Factory
- Step 3: Create a Session Using the Connection
- Step 4: Look Up a Destination (Queue or Topic)
- Step 5: Create Message Producers and Message Consumers
- Step 6a: Create the Message Object (Message Producers)
- Step 6b: Optionally Register an Asynchronous Message Listener
- Step 7: Start the Connection
- Example: Setting Up a Point-to-Point JMS Application Using the Classic API
- Example: Setting Up a Publish-Subscribe JMS Application Using the Classic API
- Sending Messages
-
Receiving Messages
- Receive Messages Asynchronously Using the Simplified API
- Receiving Messages Asynchronously using the Classic API
- Asynchronous Message Pipeline
- Receive Messages Synchronously Using the Simplified API
- Receiving Messages Synchronously Using the Classic API
- Use Prefetch Mode to Create a Synchronous Message Pipeline
- Recovering Received Messages
- Acknowledging Received Messages
- Releasing Object Resources
-
6
Managing Your Applications
- Managing Rolled Back, Recovered, Redelivered, or Expired Messages
- Setting Message Delivery Times
- Managing Connections
- Managing Sessions
- Managing Destinations
- Using Temporary Destinations
-
Setting Up Durable Subscriptions
- Defining the Persistent Store
- Setting the Client ID Policy
- Defining the Client ID
- Creating a Sharable Subscription Policy
- Creating Subscribers for a Durable Subscription
- Best Practice: Always Close Failed JMS ClientIDs
- Deleting Durable Subscriptions
- Modifying Durable Subscriptions
- Managing Durable Subscriptions
- Setting and Browsing Message Header and Property Fields
- Filtering Messages
- Sending XML Messages
- 7 Using JMS Module Helper to Manage Applications
- 8 Using Multicasting with WebLogic JMS
-
9
Using Distributed Destinations
- What Is a Distributed Destination?
- Why Use a Distributed Destination
- Creating a Distributed Destination
- Types of Distributed Destinations
- Using Distributed Destinations
- Using Message-Driven Beans with Distributed Destinations
- Common Use Cases for Distributed Destinations
-
10
Using the Message Unit-of-Order
- What is Message Unit-Of-Order?
- Understanding Message Processing with Unit-of-Order
- Message Unit-of-Order Case Study
- How to Create a Unit-of-Order
- Getting the Current Unit-of-Order
-
Message Unit-of-Order Advanced Topics
- What Happens When a Message Is Delayed During Processing?
- What Happens When a Filter Makes a Message Undeliverable
- What Happens When Destination Sort Keys Are Used
- Using Unit-of-Order with Distributed Destinations
- Using Unit-of-Order with Topics
- Using Unit-of-Order with JMS Message Management
- Using Unit-of-Order with WebLogic Store-and-Forward
- Using Unit-of-Order with WebLogic Messaging Bridge
- Limitations of Message Unit-of-Order
-
11
Using Unit-of-Work Message Groups
- What Are Unit-of-Work Message Groups?
- Understanding Message Processing with Unit-of-Work
- How to Create a Unit-of-Work Message Group
- Message Unit-of-Work Advanced Topics
- Limitations of UOW Message Groups
- 12 Using Transactions with WebLogic JMS
-
13
Developing Advanced Pub/Sub Applications
- Overview of Advanced High Availability Concepts
- Advanced Topic Messaging Features for High Availability
- Design Strategies When Using Topics
- Considerations When Using JMS 2.0 Shared Subscriptions
- Replacing a Replicated Distributed Topic
- Best Practices for Distributed Topics
-
14
Recovering from a Server Failure
-
Automatic JMS Client Failover
- Automatic Reconnect Limitations
- Automatic Failover for JMS Producers
- Configuring Automatic Failover for JMS Consumers
- Explicitly Disabling Automatic Failover on JMS Clients
- Best Practices for JMS Clients Using Automatic Failover
- Manually Migrating JMS Data to a New Server
-
Automatic JMS Client Failover
- 15 Understanding WebLogic JMS Security
- 16 WebLogic JMS C API
-
A
Server Session Pools (Deprecated)
- Defining Server Session Pools
-
B
FAQs: Integrating Remote JMS Providers
- Understanding JMS and JNDI Terminology
- Understanding Transactions
- How to Integrate with a Remote Provider
- Best Practices When Integrating with Remote Providers
- Using Foreign JMS Server Definitions
- Using EJB/Servlet JMS Resource References
- Using WebLogic Store-and-Forward
- Using WebLogic JMS SAF Client
- Using a Messaging Bridge
- Using Messaging Beans
- Using AQ JMS
- C How to Look Up a Destination
-
D
Advanced Programming with Distributed Destinations Using the JMS Destination Availability Helper API
- Introduction
- Controlling DD Producer Load Balancing
-
Using the JMS Destination Availability Helper API
- Overview
- General Flow
- Handling the weblogic.jms.extension.DestinationDetail
- Best Practices for Consumer Containers
- Interoperability Guidelines
- Security Considerations
- Transaction Considerations
- Strategies for Uniform Distributed Queue Consumers
- Strategies for Subscribers on Uniform Distributed Topics