I presume that you are using version 2.1.0.Final?
I am using that version with large messages and everything is working as it should. If you would include your hornetq-jms.xml and hornetq-configuration.xml files then we can help.
You're probably doing something wrong on ACK.
BTW: ack is on consume... don't know if you confused terms or that's part of the problem.
I think I found an easy way to repeat this problem.
If you send a large message to an address that is not bound to any queue, the large message does not get deleted.
According to the intended functionality: a message send to an address not bound to any queue should simply disapear (which also implies deleted from disk).
I had an address (not bound to any queue) that was diverting to 3 other queues.
The large message was being consumed on all 3 queues but not deleted from disk.
I worked around by sending the original message to the address bound to the first queue (out of 3) (and divert from that one to the other 2) and now the messages get deleted.
I hope this helps someone...and I hope that I am not giving wrong info.