[
https://issues.apache.org/jira/browse/AMQ-9541?focusedWorklogId=927653&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-927653
]
ASF GitHub Bot logged work on AMQ-9541:
---------------------------------------
Author: ASF GitHub Bot
Created on: 27/Jul/24 11:24
Start Date: 27/Jul/24 11:24
Worklog Time Spent: 10m
Work Description: AlexejTimonin commented on code in PR #1275:
URL: https://github.com/apache/activemq/pull/1275#discussion_r1693942546
##########
activemq-jdbc-store/src/main/java/org/apache/activemq/store/jdbc/adapter/DefaultJDBCAdapter.java:
##########
@@ -620,12 +618,12 @@ public void doRecoverNextMessages(TransactionContext c,
ActiveMQDestination dest
@Override
public void doRecoverNextMessagesWithPriority(TransactionContext c,
ActiveMQDestination destination, String clientId,
- String subscriptionName, long seq, long priority, int maxReturned,
JDBCMessageRecoveryListener listener) throws Exception {
+ String subscriptionName,
long seq, long priority, int maxReturned, JDBCMessageRecoveryListener listener)
throws Exception {
PreparedStatement s = null;
ResultSet rs = null;
try {
- s =
c.getConnection().prepareStatement(this.statements.getFindDurableSubMessagesByPriorityStatement());
+ s =
c.getConnection().prepareStatement(this.limitQuery(this.statements.getFindDurableSubMessagesByPriorityStatement()));
s.setMaxRows(Math.min(maxReturned * 2, maxRows));
Review Comment:
Not an expert, but I did some git blame digging, the * 2 got introduced in
https://issues.apache.org/jira/browse/AMQ-2980, to take into account the
messages from low and high priority queues, to ensure that none get lost and to
not hog more memory than needed. Down the road this happened
``java.sql.SQLException: setMaxRows() out of range. 50871918 > 50000000.``
(https://issues.apache.org/jira/browse/AMQ-1870). The solution to this was to
pick the lowest of two values ``(maxReturner * 2) and maxRows``, to ensure such
exception does not happen.
Issue Time Tracking
-------------------
Worklog Id: (was: 927653)
Time Spent: 50m (was: 40m)
> Missing limit on expensive queries.
> -----------------------------------
>
> Key: AMQ-9541
> URL: https://issues.apache.org/jira/browse/AMQ-9541
> Project: ActiveMQ Classic
> Issue Type: Bug
> Affects Versions: 5.18.5, 6.1.2
> Reporter: Jean-Louis Monteiro
> Priority: Major
> Time Spent: 50m
> Remaining Estimate: 0h
>
> https://issues.apache.org/jira/browse/AMQ-6049 did add the ability to limit
> the size of the records returned by the database.
>
> Some queries do not apply the limit even though the limit is applied on the
> Java side.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact