O'Reilly logo

Java Message Service by Richard Monson-Haefel, David A Chappell

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Message Groups and Acknowledgment

When multiple messages need to be dealt with as a group, the application needs to be able to store or cache interim messages until the entire group has been delivered. This requirement typically means that the asynchronous invocation of the onMessage( ) handler would result in business logic getting executed, and data would be placed temporarily in a database table in preparation for processing the group of messages as a whole. When the last message of the group arrives, the application can then go to the database to retrieve the data from the previous messages to establish any context it may need.

Handling Redelivery of Messages in an Application

JMS provides strict rules that govern when the redelivered flag is set. In AUTO_ACKNOWLEDGE mode, only the most recently consumed message is subject to ambiguous redelivery. In other modes, multiple messages may have the redelivered flag set. It is up to the application designer to isolate the conditions under which ambiguity can occur, and to account for it in the application.

Message Groups in QRetailer

A message that has been redelivered should be reconciled against any application state to resolve ambiguities related to the reason for redelivery. To see this in action, run the QWholesaler and QRetailer applications in separate command windows using the following command-line options:

java chap6.B2B.QWholesaler localhost username password
java chap6.B2B.QRetailer localhost username password

In the QWholesaler ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required