activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Li, Fan" <>
Subject PrefetchSubscription preLoadSize not decreased
Date Wed, 22 Mar 2006 18:09:22 GMT

I am running test on the JmsConnectors, the test case I am trying to run is sending and receiving
Messages in the Queue region and the transport I am using is TcpTransport.

I am running into a problem with the preLoadSize of PrefetchSubscription not being decremented
at all, so Messages add to PrefetchSubscription can no longer be dispatched. The preLoadSize
is decreased by calling the decrementPreloadSize of PrefetchSubscription, which is never called
in my test case.

I have setup a similar test but using VMTransport, there appears to be no problem. In both
test cases, the dispatch method of PrefetchSubscription calls the dispatchAsync method of
its associated AbstractConnection for dispatching. The differences between the two test cases
I have notices is that when the transport is tcp, there is a taskRunner associated with the
AbstactConnection, which will be wakeup to run the task at some future time; but when the
transport is vm, the AbstractConnection has no taskRunner and the dispatchSync method will
be called to dispatch the message as well as calling the  run method on the Consumer of the
message, which will correctly call the onDispatch method of PrefetchSubscription and decrease
the preLoadSize.

I have trouble tracing whether or not the task that eventually ran by the task associated
with the taskRunner actually called the run method on the Consumer of the message, do anyone
knows how to fix this problem?


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message