You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Li, Fan" <fa...@amazon.com> on 2006/03/22 19:09:22 UTC

PrefetchSubscription preLoadSize not decreased

Hi:

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?

Thanks
Fan


Re: PrefetchSubscription preLoadSize not decreased

Posted by Hiram Chirino <hi...@hiramchirino.com>.
Hi Li,

As of svn revision 387562, we no longer use the preLoadSize.  see:
http://svn.apache.org/viewcvs?rev=387562&view=rev

Please get an update and let me know if this has fixed your issue.

On 3/22/06, Li, Fan <fa...@amazon.com> wrote:
> Hi:
>
> 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?
>
> Thanks
> Fan
>
>
>


--
Regards,
Hiram