activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQCPP-441) Incorrect propagation of AMQ-2489 to CMS/C++ (causes performance degradation) in r833769.
Date Wed, 21 Nov 2012 16:23:58 GMT

    [ https://issues.apache.org/jira/browse/AMQCPP-441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13502100#comment-13502100
] 

Timothy Bish commented on AMQCPP-441:
-------------------------------------

The consumer code on trunk is located in ActiveMQConsumerKernel.cpp 
                
> Incorrect propagation of AMQ-2489 to CMS/C++ (causes performance degradation) in r833769.
> -----------------------------------------------------------------------------------------
>
>                 Key: AMQCPP-441
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-441
>             Project: ActiveMQ C++ Client
>          Issue Type: Bug
>          Components: CMS Impl
>    Affects Versions: 3.4.5
>         Environment: This should repeat in any environment using V3.4.5.
>            Reporter: Sean J Donovan
>            Assignee: Timothy Bish
>
> With CMS/C++ V3.4.5 (and a snapshot of V3.5.0) I was getting the symptom reported in
AMQ-2489.  I found that this occurs in CMS/C++ when you have a consumer prefetch value of
1 or 2.  The exception doesn't happen when prefetch is > 2.  Although the exception can
be ignored, it **does** affect performance significantly.  
> I did some research, I think there is a bug in how AMQ-2489 was propagated to CMS/C++.
> The problem was introduced here:
>    src/main/activemq/core/ActiveMQConsumer.cpp (r833769)
> The link to that version of the file is here:
> http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/activemq-cpp/src/main/activemq/core/ActiveMQConsumer.cpp?revision=883469&view=markup
> I think that line #595 **shouldn't** exist.  That line is:
>    ackLater( message, ActiveMQConstants::ACK_TYPE_DELIVERED );
> This link contains details on the original Java fix:
> http://mail-archives.apache.org/mod_mbox/activemq-commits/200911.mbox/%3C20091123184303.EBB2D23889C5@eris.apache.org%3E
> . . . in the code changes to ActiveMQMessageConsumer.java, you'll notice 
> that the following line was **removed**:
>       -                ackLater(md, MessageAck.DELIVERED_ACK_TYPE);
> Thus, I believe the propogation was incorrect.  Fortunately, the fix is simple.  The
code has been refactored for V3.5.0 and I'm not sure where the logic has moved to -- should
be easy to find.
> Sean

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message