In AMQSession_0_10.java, when using AUTO_ACK or DUPS_OK the acknowledgements are batched to improve performance.
The ack are flushed based one of the following conditions (which ever happens first).
1. When the ack timer fires. The ack-time is configure via qpid.session.max_ack_delay
2. if un_acked_msg_count > max_prefetch/2.
For the test case you could force it to ack more frequently by having a smaller prefetch.
(Please note as per the JMS spec AUTO_ACK should ack each message before it serves up the next message. However by default our AUTO_ACK acts the same as DUPS_OK.)