[ 
https://issues.apache.org/jira/browse/AMQ-9344?focusedWorklogId=900226&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-900226
 ]

ASF GitHub Bot logged work on AMQ-9344:
---------------------------------------

                Author: ASF GitHub Bot
            Created on: 17/Jan/24 20:17
            Start Date: 17/Jan/24 20:17
    Worklog Time Spent: 10m 
      Work Description: cshannon commented on code in PR #1139:
URL: https://github.com/apache/activemq/pull/1139#discussion_r1456430823


##########
activemq-broker/src/main/java/org/apache/activemq/broker/TransactionBroker.java:
##########
@@ -291,13 +294,39 @@ public void send(ProducerBrokerExchange producerExchange, 
final Message message)
             transaction = getTransaction(context, message.getTransactionId(), 
false);
         }
         context.setTransaction(transaction);
+
         try {
+            // [AMQ-9344] Limit uncommitted transactions by count
+            verifyUncommittedCount(producerExchange, transaction, message);
             next.send(producerExchange, message);
         } finally {
             context.setTransaction(originalTx);
         }
     }
 
+    protected void verifyUncommittedCount(ProducerBrokerExchange 
producerExchange, Transaction transaction, Message message) throws Exception {
+        // maxUncommittedCount <= 0 disables
+        int maxUncommittedCount = 
this.getBrokerService().getMaxUncommittedCount();
+        if (maxUncommittedCount > 0 && transaction.size() >= 
maxUncommittedCount) {

Review Comment:
   Shouldn't this be a greater than check and not >= ? We only want to fail if 
we go past the max size not if we are at it. This is why the test has 11 failed 
ops but should only be 10 since your test you set the max to 10 so we should 
allow 10 and then fail on 11 - 20





Issue Time Tracking
-------------------

    Worklog Id:     (was: 900226)
    Time Spent: 2h 10m  (was: 2h)

> Ability to configure a limit on uncommitted message count in a transaction
> --------------------------------------------------------------------------
>
>                 Key: AMQ-9344
>                 URL: https://issues.apache.org/jira/browse/AMQ-9344
>             Project: ActiveMQ
>          Issue Type: New Feature
>            Reporter: Matt Pavlovich
>            Assignee: Matt Pavlovich
>            Priority: Major
>             Fix For: 6.1.0
>
>          Time Spent: 2h 10m
>  Remaining Estimate: 0h
>
> 1. Add a config flag to limit the max number (by count and/or bytes) of 
> uncommitted message per transaction
> 2. Add a config flag to limit the max number of simultaneous transactions per 
> destination
> On limit exceeding, rollback the tx and return a ResourceAllocationException 
> to the client
> Possible default values:
> 6.x - unlimited (current behavior)
> 7.x - 10,000 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to