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

Gary Tully commented on AMQ-6687:
---------------------------------

With transactions or concurrentStoreAndDispatch - memory is accounted for 
before it reaches the cache which typically means that the cursor cache stops 
accepting messages early. If we want the cache and PFC we have to let the cache 
consume >100% of memory. To achieve this we must set the 
cursorHighWaterMark>100% something like 120% such that it will still allow a 
message to be cached while is is <100 that will put it over the 100% (full) 
limit.
Ie: we check is full and we are at 99%, we accept another message that pushes 
us to 101%, without a cursorHighWaterMark > 101 the cursor won't cache and will 
stick at 99% and producer flow control (PFC) won't kick in.

> destination memory usage incorrect after flow control (PFC) sendTimeout and 
> rollback
> ------------------------------------------------------------------------------------
>
>                 Key: AMQ-6687
>                 URL: https://issues.apache.org/jira/browse/AMQ-6687
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.14.0
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>             Fix For: 5.15.0
>
>
> When using PFC, to block a producer on a memory limit and using a sendTimeout 
> to error out after some timeout. If there is a send transaction the send 
> completes in error even though the transaction has completed once usage 
> allows.
> Leaving a dangling send that shows up in the memory usage.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to