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