This figure illustrates how an MDB can still receive duplicate messages if the server crashes between the time onMessage() completes and the time the container acknowledges message delivery.
onMessage()