Issue opened AMQ-2567.

It is non deterministic. The problem disappears sometimes during debugging.
Thanks for the pointers I will do some more debugging.

  Rudolf

Am 14.01.2010 um 15:14 schrieb Gary Tully <gary.tu...@gmail.com>:

can you open an issue for this, I just gave it a whirl (on trunk) and get similar but non deterministic results. The second consumer got 6 and 7 on
two runs.
PrefetchSubscription and prefetchExtension on a deliveryAck in a transaction are areas that you need to look into to resolve this. Great that you have a
simple junit test case.

2010/1/14 Rudolf Janz <rudolf.j...@gmx.net>

Hello,

I have problems using a prefetch of Zero. The consumer starts prefetching
messages after some receives.

Our use case is, that we have a large computation which is split into
smaller sub jobs. These jobs are sent via ActiveMQ to some processing nodes on different machines. The duration of jobs differs very much (10s to some minutes). The jobs are sent by decreasing estimated computation time. If one of the consumers which receives a large job prefetches some other jobs, these will be processed later. In the meantime the remaining consumers are
idle, and the total computation time is much longer than necessary.

I have modified the existing ZeroPrefetchConsumerTest to test for the
problem (I have removed the other test methods).

Two consumers (C1  and C2) are instantiated. These messages are sent:
1,2,3,4,5,6,7,8,9

C1 reads 4 times, receives 1,2,3,4 -> this is correct

now C2 reads, it receives 8 not 5, which is the next message in the queue.
The reason is, that C1 prefetched 5, 6, 7, that should not have
happened.(sometimes C1 only prefetches 5,6)

The problem can be seen in the JMX Console as well, after a while, the first consumer has more than one dispatched message and the queue has an
InflightCount of 3, although there are only two consumers!

I have tried debugging in the ActiveMQConsumer code, but did not get far. If somebody can give me a pointer where to look, I might give it another
try.

 Regards
 Rudolf Janz






--
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Reply via email to