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 (Created) (JIRA)" <ji...@apache.org> on 2011/12/02 20:43:40 UTC

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

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: Jim Gomes


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

        

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

Posted by "Jonathan Parker McClure (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13174798#comment-13174798 ] 

Jonathan Parker McClure edited comment on AMQNET-358 at 12/22/11 1:30 PM:
--------------------------------------------------------------------------

Hi Tim. Please find attached a revised version of the sample app. You will find an additional project called AMQTestConsumerBare that does not use Spring at all. Just Apache.NMS directly. I see the exact same behavior. 

Looking at the code in ConnectionStateTracker, I see this condition in DoRestoreConsumer() that controls the pull v.s push recovery..
                if(!connectionInterruptionProcessingComplete && infoToSend.PrefetchSize > 0 && transport.WireFormat.Version > 5)

..and it appears this never gets called:

ConnectionInterruptProcessingComplete(..)

I know I must be missing something, but the test case is dirt simple and always fails to recover.

Please let me know what you think I can do. And Thank you for your time.

                
      was (Author: jericosandhorn):
    Hi Tim. Please find attached a revised version of the sample app. You will find an additional project called AMQTestConsumerBare that does not use Spring at all. Just Apache.NMS directly. I see the exact same behavior. 

Looking at the code in ConnectionStateTracker, I see this condition that controls the pull v.s push recovery..
                if(!connectionInterruptionProcessingComplete && infoToSend.PrefetchSize > 0 && transport.WireFormat.Version > 5)

..and it appears this never gets called:

ConnectionInterruptProcessingComplete(..)

Or perhaps this line in DoRestoreConsumers() 

I know I must be missing something, but the test case is dirt simple and always fails to recover.

Please let me know what you think I can do. And Thank you for your time.

                  
> 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, AMQTestAppNoSpring.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

        

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

Posted by "Timothy Bish (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish resolved AMQNET-358.
---------------------------------

       Resolution: Fixed
    Fix Version/s: 1.6.0
                   1.5.3

Cannot reproduce this using the SNAPSHOT 1.5.3 build.
                
> 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
>             Fix For: 1.5.3, 1.6.0
>
>         Attachments: AMQTestApp.7z, AMQTestAppNoSpring.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

        

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

Posted by "Jonathan Parker McClure (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173355#comment-13173355 ] 

Jonathan Parker McClure edited comment on AMQNET-358 at 12/20/11 6:01 PM:
--------------------------------------------------------------------------

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.

If you like, I can upload my broker config dir if that helps. But I'm inclined to think it's not on the broker side. 

Thank you!
                
      was (Author: jericosandhorn):
    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

        

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

Posted by "Jonathan Parker McClure (Reopened) (JIRA)" <ji...@apache.org>.
     [ 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

        

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

Posted by "Timothy Bish (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13176768#comment-13176768 ] 

Timothy Bish commented on AMQNET-358:
-------------------------------------

A SNAPSHOT build of 1.5.3 is available here: http://people.apache.org/~tabish/nms-1.5.0/ please try it and see if you see the same issue.
                
> 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, AMQTestAppNoSpring.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

        

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

Posted by "Jonathan Parker McClure (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Parker McClure updated AMQNET-358:
-------------------------------------------

    Attachment: AMQTestApp.7z

This is the dev studio solution containing the sample application. 
                
> 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

        

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

Posted by "Jonathan Parker McClure (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13187657#comment-13187657 ] 

Jonathan Parker McClure commented on AMQNET-358:
------------------------------------------------

Sorry for the belated response. I did test this against 1.5.3 and it has corrected the issue. Thanks.
                
> 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
>             Fix For: 1.5.3, 1.6.0
>
>         Attachments: AMQTestApp.7z, AMQTestAppNoSpring.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

        

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

Posted by "Timothy Bish (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13168502#comment-13168502 ] 

Timothy Bish commented on AMQNET-358:
-------------------------------------

You can get the older releases by looking in the Apache archives.  Only the newest release is kept on the download mirror.

Creating a unit test that demonstrates the issue will help in investigating the issue.
                
> 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: Jim Gomes
>
> 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

        

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

Posted by "Timothy Bish (Closed) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Timothy Bish closed AMQNET-358.
-------------------------------

    Resolution: Cannot Reproduce
      Assignee: Timothy Bish  (was: Jim Gomes)

I tested this and in all cases the client sends the initial subscribe with a zero prefetch and once interruption processing is complete the old value is restored.  If you can provide a test case that shows a different behavior please reopen and attach it here.
                
> 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
>
> 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

        

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

Posted by "Jonathan Parker McClure (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Parker McClure updated AMQNET-358:
-------------------------------------------

    Attachment: AMQTestAppNoSpring.7z

Hi Tim. Please find attached a revised version of the sample app. You will find an additional project called AMQTestConsumerBare that does not use Spring at all. Just Apache.NMS directly. I see the exact same behavior. 

Looking at the code in ConnectionStateTracker, I see this condition that controls the pull v.s push recovery..
                if(!connectionInterruptionProcessingComplete && infoToSend.PrefetchSize > 0 && transport.WireFormat.Version > 5)

..and it appears this never gets called:

ConnectionInterruptProcessingComplete(..)

Or perhaps this line in DoRestoreConsumers() 

I know I must be missing something, but the test case is dirt simple and always fails to recover.

Please let me know what you think I can do. And Thank you for your time.

                
> 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, AMQTestAppNoSpring.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

        

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

Posted by "Timothy Bish (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13174407#comment-13174407 ] 

Timothy Bish commented on AMQNET-358:
-------------------------------------

If you don't use the Spring .NET stuff do you encounter the same problem.  Would be good to try and create a test case that doesn't use the Spring stuff as its difficult to know if it introduces some other issues.
                
> 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

        

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

Posted by "Sebastien Rodriguez (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164230#comment-13164230 ] 

Sebastien Rodriguez commented on AMQNET-358:
--------------------------------------------

This issue is not reproducible in NMS 1.5.1 and hence has been introduced in 1.5.2

I tried to re download the NMS 1.5.1 but ALL the links in the download pages are down, we can only find the 1.5.2 files in the mirrors.
This is blocking for me, as it breaks the current implementation in our system.
                
> 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: Jim Gomes
>
> 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

        

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

Posted by "Jonathan Parker McClure (Issue Comment Edited) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/AMQNET-358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13173356#comment-13173356 ] 

Jonathan Parker McClure edited comment on AMQNET-358 at 12/20/11 6:21 PM:
--------------------------------------------------------------------------

I've attached the dev studio solution containing the sample application. 
                
      was (Author: jericosandhorn):
    This is the dev studio solution containing the sample application. 
                  
> 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