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
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.
provides strict rules that govern when the
redelivered flag is set. In
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.
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
applications in separate command
windows using the following command-line options:
localhost username passwordjava chap6.B2B.QRetailer
localhost username password