You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Jonathan Parker McClure (Reopened) (JIRA)" <ji...@apache.org> on 2011/12/20 19:00:32 UTC

[jira] [Reopened] (AMQNET-358) Why do ActiveMQ Consumers Recover to Pull Mode instead of Prefetch

     [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Parker McClure reopened AMQNET-358:
--------------------------------------------

    Regression: Regression

I've been able to reproduce this issue very easily and have attached a sample application to demonstrate it. Please have a look at the 2 logs for producer and consumer (bin/Debug/) and you can see what happens when I run it. It's clear the Consumer stops receiving after the recovery. 

I also include a README in the zip.

Also, I can upload by Broker config dir if that helps. But I'm inclined to think it's not on the broker side. 

Thank you!
                
> Why do ActiveMQ Consumers Recover to Pull Mode instead of Prefetch
> ------------------------------------------------------------------
>
>                 Key: AMQNET-358
>                 URL: https://issues.apache.org/jira/browse/AMQNET-358
>             Project: ActiveMQ .Net
>          Issue Type: Bug
>          Components: ActiveMQ
>    Affects Versions: 1.5.2
>         Environment: Windows Server 2008 R2 Standard
> AMQ Broker 5.4.2
> Spring.NET 1.3.2
> Apache.NMS 1.5.0
> Apache.NMS.ActiveMQ 1.5.2
>            Reporter: Jonathan Parker McClure
>            Assignee: Timothy Bish
>         Attachments: AMQTestApp.7z
>
>
> I recently upgraded to NMS ActiveMQ 1.5.2 and when I restart the broker, the connection and the consumers get restored, but they get restored to the "pull" mode, which means the broker will not send them messages automatically. This isn't how the previous version behaved. What I need is for it to recover back to the way it was, which was prefetch 1000. I think I must be missing a setting for the failover URL or something like that.
> My URL looks like this: 
> failover:(tcp://localhost:61616?consumer.prefetchSize=1266)
> I peaked at the source and it looks like the final "completion" isn't getting to this area:
> Tracer.Debug("restored recovering consumer: " + control.ConsumerId + " with: " + control.Prefetch);
> Here is the log output from the consumer.
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:-1:1 in pull mode pending recovery, overriding prefetch: 1000
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:-1:1
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:1:1 in pull mode pending    
> recovery, overriding prefetch: 1000
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:1:1
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:2:1 in pull mode pending    
> recovery, overriding prefetch: 1000
> restore consumer: ID:csi-dul-516m-6334-634583598187658753-1:0:2:1
> Sending queued commands...
> Transport has resumed normal operation.
> Connection established
> Successfully reconnected to: tcp://localhost:61616/

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira