Clients retrieve messages under a transactional context to ensure that messages are received by a handling component.
|How can it be ensured that messages are only deleted from a message queue if they have been received successfully?|
While a Message-oriented Middleware can control traversing messages, it may be necessary to assure that messages are actually received successfully from a message queue by the client.
The Message-oriented Middleware and the client reading a message from a queue participate in a transaction. All operations involved in the reception of a message are, therefore, performed under one transactional context guaranteeing ACID behavior.