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=13502099#comment-13502099
] 

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

I removed the ackLater from the code in the 3.4.x branch, the trunk code doesn't seem to have
this issue so it should work fine.  I'd recommend that you try and create a test case if this
issue is still occurring so I can look into it. 
                
> 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