At the end of this chapter you will understand the following.
Warning |
---|
Several features of WebSphere MQ Everyplace allow the routing of messages to be altered dynamically. Changing the WebSphere MQ Everyplace network topology in this fashion is not always a wise thing to do. Care must be taken to ensure that there are no 'in doubt' messages that would be affected by the change. If a message is put with a non-zero confirm id, and then the WebSphere MQ Everyplace network topology is changed to alter the routing of the subsequent confirmGetMessage call, then the unconfirmed message will not be found. WebSphere MQ Everyplace protocol treats a failure to confirm a put as an indication that the put message has been confirmed already, and therefore assumes success. This could leave an unconfirmed message on a queue, which represents a loss of a message, and therefore breaks the assured delivery promise. Since WebSphere MQ Everyplace uses the same two step process to assure delivery of asynchronously sent messages, regardless of whether a zero or non-zero confirmId is used, changing the network topology can break the assured delivery of asynchronous message sends. |