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

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

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


##########
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:
   Nevermind, equals makes sense since you've already sent the max previous 
(this is on the send of the next one) so i'm still wondering why the test 
assertion is 11 and not 10 though.





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

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

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