Home Page Icon
Home Page
Table of Contents for
Cover
Close
Cover
by Richard Monson-Haefel, David A Chappell
Java Message Service
Java Message Service
SPECIAL OFFER: Upgrade this ebook with O’Reilly
A Note Regarding Supplemental Files
Dedication
Preface
What Is the Java Message Service?
Who Should Read This Book?
Organization
Software and Versions
Conventions
Comments and Questions
Acknowledgments
1. Understanding the Messaging Paradigm
1.1. Enterprise Messaging
1.1.1. Centralized Architectures
1.1.2. Decentralized Architectures
1.1.3. Hybrid Architectures
1.1.4. Centralized Architecture as a Model
1.2. The Java Message Service ( JMS)
1.2.1. JMS Messaging Models: Publish-and-Subscribe and Point-to-Point
1.2.1.1. Publish-and-subscribe
1.2.1.2. Point-to-point
1.3. Application Scenarios
1.3.1. Enterprise Application Integration
1.3.2. Business-to-Business
1.3.3. Geographic Dispersion
1.3.3.1. One-to-many, push-model applications
1.3.4. Building Dynamic Systems with Messaging and JMS
1.4. RPC Versus Asynchronous Messaging
1.4.1. Tightly Coupled RPC
1.4.2. Enterprise Messaging
2. Developing a Simple Example
2.1. The Chat Application
2.1.1. Getting Started with the Chat Example
2.1.2. Examining the Source Code
2.1.2.1. Bootstrapping the JMS client
2.1.2.2. Obtaining a JNDI connection
2.1.2.3. The TopicConnectionFactory
2.1.2.4. The TopicConnection
2.1.2.5. The TopicSession
2.1.2.6. The Topic
2.1.2.7. The TopicPublisher
2.1.2.8. The TopicSubscriber
2.1.2.9. The Message
2.1.3. Sessions and Threading
3. Anatomy of a JMS Message
3.1. Headers
3.1.1. Automatically Assigned Headers
3.1.1.1. JMSDestination
3.1.1.2. JMSDeliveryMode
3.1.1.3. JMSMessageID
3.1.1.4. JMSTimestamp
3.1.1.5. JMSExpiration
3.1.1.6. JMSRedelivered
3.1.1.7. JMSPriority
3.1.2. Developer-Assigned Headers
3.1.2.1. JMSReplyTo
3.1.2.2. JMSCorrelationID
3.1.2.3. JMSType
3.2. Properties
3.2.1. Application-Specific Properties
3.2.2. JMS-Defined Properties
3.2.3. Provider-Specific Properties
3.3. Message Selectors
3.3.1. Message Selector Examples
3.4. Message Types
3.4.1. Message
3.4.2. TextMessage
3.4.3. ObjectMessage
3.4.4. BytesMessage
3.4.5. StreamMessage
3.4.6. MapMessage
3.4.7. Read-Only Messages
3.4.8. Client-Acknowledged Messages
3.4.9. Interoperability and Portability of Messages
4. Publish-and-Subscribe Messaging
4.1. Getting Started with the B2B Application
4.1.1. Running the B2B Application
4.1.2. The B2B Source Code
4.1.2.1. The Wholesaler class
4.1.2.2. The Retailer class
4.2. Temporary Topics
4.3. Durable Subscriptions
4.4. Publishing the Message Persistently
4.4.1. Persistent Messages and Temporary Topics
4.5. JMSCorrelationID
4.6. Request and Reply
4.6.1. TopicSubscriber.receive( )
4.6.2. TopicRequestor
4.7. Unsubscribing
5. Point-to-Point Messaging
5.1. Point-to-Point and Publish-and-Subscribe
5.1.1. When to Use Point-to-Point Messaging
5.2. The QWholesaler and QRetailer
5.2.1. The QRetailer Class
5.2.2. The QWholesaler Class
5.3. Creating a Queue Dynamically
5.4. Load Balancing Using Multiple QueueSessions
5.5. Examining a Queue
5.5.1. The QWBrowser Source Code
6. Guaranteed Messaging, Transactions, Acknowledgments, and Failures
6.1. Guaranteed Messaging
6.1.1. Message Autonomy
6.1.2. Store-and-Forward Messaging
6.1.3. Message Acknowledgments and Failure Conditions
6.2. Message Acknowledgments
6.2.1. AUTO_ACKNOWLEDGE
6.2.1.1. The producer's perspective
6.2.1.2. The server's perspective
6.2.1.3. The consumer's perspective
6.2.1.4. Message redelivery
6.2.1.5. Point-to-point queues
6.2.2. DUPS_OK_ACKNOWLEDGE
6.2.3. CLIENT_ACKNOWLEDGE
6.2.3.1. Grouping multiple messages
6.3. Message Groups and Acknowledgment
6.3.1. Handling Redelivery of Messages in an Application
6.3.2. Message Groups in QRetailer
6.3.2.1. Compensating transactions
6.4. Transacted Messages
6.4.1. Creating and Using a JMS Transaction
6.4.2. The Transacted Retailer Example
6.4.3. Distributed Transactions
6.5. Lost Connections
6.5.1. The Wholesaler Becomes an ExceptionListener
6.6. Dead Message Queues
7. Deployment Considerations
7.1. Performance, Scalability, and Reliability
7.1.1. Determining Message Throughput Requirements
7.1.2. Testing the Real-World Scenario
7.1.2.1. Testing with one client
7.1.2.2. Send rate versus receive rate
7.1.2.3. Determining hardware requirements
7.1.2.4. Finding or building a test bed
7.1.2.5. Long duration reliability
7.1.2.6. Memory leaks
7.2. To Multicast or Not to Multicast
7.2.1. TCP/IP
7.2.2. UDP
7.2.3. IP Multicast
7.2.4. Messaging Over IP Multicast
7.2.4.1. Duplication, ordering, and reliability of messages
7.2.4.2. Centralized and decentralized architectures
7.2.4.3. Network routers and firewalls
7.2.4.4. Some vendors support both centralized and decentralized architectures
7.2.5. The Bottom Line
7.3. Security
7.3.1. Authentication
7.3.2. Authorization
7.3.3. Secure Communication
7.3.4. Firewalls and HTTP Tunneling
7.4. Connecting to the Outside World
7.5. Bridging to Other Messaging Systems
8. J2EE, EJB, and JMS
8.1. J2EE Overview
8.1.1. Enterprise JavaBeans
8.1.2. Servlets
8.1.3. JavaServer Pages
8.2. J2EE: A United Platform
8.3. The JMS Resource in J2EE
8.4. The New Message-Driven Bean in EJB 2.0
9. JMS Providers
9.1. IBM: MQSeries
9.1.1. Version 5.1
9.1.2. Next Version
9.2. Progress: SonicMQ
9.2.1. Version 3.0
9.2.2. Next Version
9.3. Fiorano: FioranoMQ
9.3.1. FioranoMQ Multicast 4.5
9.3.2. FioranoMQ Enterprise 4.5
9.3.3. Next Version
9.4. Softwired: iBus
9.4.1. iBus//MessageBus 3.1
9.4.2. iBus//MessageServer 4.1
9.4.3. iBus//Mobile 1.0
9.4.4. Next Versions
9.5. Sun Microsystems: Java Message Queue
9.5.1. Version 1.1
9.5.2. Next Version
9.6. BEA: WebLogic Server
9.6.1. Version 5.1
9.6.2. Next Version
9.7. ExoLab: OpenJMS
9.7.1. Beta Version 0.4
9.7.2. Version 1.0
A. The Java Message Service API
A.1. Common Facilities
A.1.1. BytesMessage
A.1.2. Connection
A.1.3. ConnectionFactory
A.1.4. ConnectionMetaData
A.1.5. DeliveryMode
A.1.6. Destination
A.1.7. ExceptionListener
A.1.8. JMSException
A.1.9. MapMessage
A.1.10. Message
A.1.11. MessageConsumer
A.1.12. MessageListener
A.1.13. MessageProducer
A.1.14. ObjectMessage
A.1.15. Session
A.1.16. StreamMessage
A.1.17. TextMessage
A.2. Point-to-Point API
A.2.1. Queue
A.2.2. QueueBrowser
A.2.3. QueueConnection
A.2.4. QueueConnectionFactory
A.2.5. QueueReceiver
A.2.6. QueueSender
A.2.7. QueueSession
A.2.8. TemporaryQueue
A.3. Publish-and-Subscribe API
A.3.1. TemporaryTopic
A.3.2. Topic
A.3.3. TopicConnection
A.3.4. TopicConnectionFactory
A.3.5. TopicPublisher
A.3.6. TopicSession
A.3.7. TopicSubscriber
B. Message Headers
JMSDestination
JMSDeliveryMode
JMSMessageID
JMSTimestamp
JMSExpiration
JMSRedelivered
JMSPriority
JMSReplyTo
JMSCorrelationID
JMSType
C. Message Properties
C.1. Property Names
C.2. Property Values
C.3. Read-Only Properties
C.4. Property Value Conversion
C.5. Nonexistent Properties
C.6. Property Iteration
C.7. JMS-Defined Properties
C.7.1. Optional JMS-Defined Properties
C.7.2. Group JMS-Defined Properties
C.8. Provider-Specific Properties
D. Message Selectors
D.1. Identifiers
D.2. Literals
D.3. Comparison Operators
D.4. Arithmetic Operators
D.5. Declaring a Message Selector
D.6. Not Delivered Semantics
About the Authors
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
Search in book...
Toggle Font Controls
Playlists
Add To
Create new playlist
Name your new playlist
Playlist description (optional)
Cancel
Create playlist
Sign In
Email address
Password
Forgot Password?
Create account
Login
or
Continue with Facebook
Continue with Google
Sign Up
Full Name
Email address
Confirm Email Address
Password
Login
Create account
or
Continue with Facebook
Continue with Google
Next
Next Chapter
Java Message Service
Add Highlight
No Comment
..................Content has been hidden....................
You can't read the all page of ebook, please click
here
login for view all page.
Day Mode
Cloud Mode
Night Mode
Reset