activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Dean <a...@crackpot.org>
Subject Re: ajax handling fast messages
Date Mon, 10 Jan 2011 15:57:59 GMT

On Jan 10, 2011, at 5:02 AM, Jeff Rose wrote:

> On Sat, Jan 8, 2011 at 2:11 AM, Alex Dean <alex@crackpot.org> wrote:
> On Dec 14, 2010, at 9:48 AM, Jeff Rose wrote:
> 
> > Hi Alex,
> >  Thanks for the response.  We looked into it a bit more based on your
> > suggestion, and we discovered that there is an error occurring when the
> > continuation is resumed in onMessageAvailable in AjaxListener.java.  It
> > looks like this onMessageAvailable handler is being called every time a new
> > message arrives on the queue, and then it is trying to resume a continuation
> > that has already been resumed, which causes an illegal state exception.
> > We've been trying to fix the bug  by checking first:
> >
> >   !continuation.isResumed()
> >
> > but we are still getting the error occasionally (although it does often get
> > all of the messages now).  This seems to be a pretty fundamental bug in the
> > AJAX support of ActiveMQ.  Definitely worth posting a ticket (although I
> > don't know where that is done).
> 
> Jeff: I attached a patch to AMQ-3094 which I think fixes this problem.  A continuation
can be in more states than just initial & resumed, so checking !continuation.isResumed()
can still result in illegal state exceptions.  I changed your suggestion so AjaxListener only
tries to resume a continuation "if( continuation.isSuspended() )".  Otherwise it buffers the
message for delivery in the next poll (building on some code Dejan committed a few days ago).
> 
> Let me know if you have time to test this patch, and if it solves the issue for you.
 It looks good in my tests so far.
> 
> https://issues.apache.org/jira/secure/attachment/12467757/all_messages_are_delivered_to_ajax_clients.patch
> 
> Hi Alex,
>   I'm not able to apply your patch, either to the latest from SVN or to revision 1052368
which is specified in the patch.  For example, in MessageListenerServlet.java I don't have
any reference to the unconsumedMessages linked list.  Can you generate the patch against the
latest from SVN so I can give it a try?  I've got everything setup again to test with my initial
PHP and javascript configuration.

Sure.  I'll update to trunk HEAD and re-send the patch.

unconsumedMessages was added to AjaxListener in r1052259, so if you've got HEAD you should
have it.  http://svn.apache.org/viewvc?view=revision&revision=1052259

Updated patch (now based on trunk r1057227) is at https://issues.apache.org/jira/secure/attachment/12467892/all_messages_are_delivered_to_ajax_clients.2.patch

alex
Mime
View raw message