In User Manual -- 21.3. Delivery Count Persistence, it says
... this behavior breaks strict JMS semantics, HornetQ allows to persist delivery count before message delivery but disabled it by default for performance implications.
To enable it, set persist-delivery-count-before-delivery to true in hornetq-configuration.xml.
It bothers me a little that HornetQ would default a setting that does not comfort to JMS semantics for performance trade off. I rather have the default setting in reverse. What do other users think?