Book Image

HornetQ Messaging Developer's Guide

By : Piero Giacomelli
Book Image

HornetQ Messaging Developer's Guide

By: Piero Giacomelli

Overview of this book

<p>Messages and information can be exchanged at exponential speed with JBoss HornetQ asynchronous messaging middleware. Learn how to use the JAVA open source Message Oriented Framework, to build a high-performance, multi-protocol, embeddable, clustered system and manage millions of messages per second.<br /><br />In the HornetQ Messaging Developer’s Guide you will find the most common applications of a message exchanger with example code, as part of real-world scenarios. This practical and applicable guide increases reader knowledge chapter by chapter, covering basics to the most advanced features.<br /><br />You will start from a clean installation of a HornetQ sever and, having progressively become a HornetQ master, will finish by being able to use the framework embedded in your software and sharing information in a cluster environment.<br /><br />Starting from writing and reading a single message, we will discover more advanced features like managing queues, clustering the server, and controlling the undelivered messages. The book deals with a real-world advanced medical scenario as the main example that will lead you from learning the basics to the advanced features of HornetQ.</p>
Table of Contents (18 chapters)
HornetQ Messaging Developer's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Managing undelivered messages


Up until now we have supposed that every message has been successfully consumed by the consumer layer. However in a real high-frequency transactional environment this is not always possible. Remember from Chapter 1, Getting Started with HornetQ, we could have a connection error due to the fact that the MongoDB server is down.

So there are two possibilities when consuming a message, if it is consumed in the correct way, you can commit the session so HornetQ will remove the message from the queue where it was stored. If something goes wrong you can roll back the session in this case the message is put on the queue some other time where it was stored.

This means that if the error persists it is possible that the message is redelivered again and again. To avoid this, HornetQ offers two main possibilities:

  • Delayed redelivery: You can configure some delay time to let the client return in a successfully delivered state

  • Dead letter address: All messages that are not delivered...