You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Christian Posta (JIRA)" <ji...@apache.org> on 2013/02/13 06:02:12 UTC

[jira] [Commented] (AMQ-4311) Spooling pending messages in the large transaction to the disk

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

Christian Posta commented on AMQ-4311:
--------------------------------------

What store are you assuming for this? Kahadb? Jdbc? Memory?
Can you put together a test that shows PFC won't block? message size for pending messages in a tx should be counted against memory usage... any time we do a message.incrementReferenceCount(), the usage memory will be updated (if it's the first reference).

In org.apache.activemq.broker.region.Queue#doMessageSend we check if transaction (context.isInTransaction) and then we do message.incrementReferenceCount()...

In org.apache.activemq.broker.region.Topic#doMessageSend we increment the reference regardless of whether it's in a tx. 

You might be on to something, but can you give more details?
                
> Spooling pending messages in the large transaction to the disk
> --------------------------------------------------------------
>
>                 Key: AMQ-4311
>                 URL: https://issues.apache.org/jira/browse/AMQ-4311
>             Project: ActiveMQ
>          Issue Type: Improvement
>          Components: Broker, Message Store
>    Affects Versions: 5.x
>            Reporter: SuoNayi
>             Fix For: 5.9.0
>
>
> Currently MemoryTransactionStore is used to hold pending messages in a transaction.
> More pending messages in a transaction more memory is consumed.
> Because the message size of pending messages is not counted in usage limit before they are committed so PFC wont block producers as well and large transaction will cause broker throws OOM at last.
> Spooling pending messages in the transaction to the disk is one of solution.

--
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