This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 23ca4e1826 ARTEMIS-5621 logger.info when queue is disabled
23ca4e1826 is described below
commit 23ca4e18264ffbfec1271998ce7fda3d5f24f688
Author: Clebert Suconic <[email protected]>
AuthorDate: Thu Aug 14 11:05:43 2025 -0400
ARTEMIS-5621 logger.info when queue is disabled
This will log the infor earlier instead of being routed.
---
.../artemis/core/server/ActiveMQServerLogger.java | 3 ++
.../artemis/core/server/impl/QueueImpl.java | 10 ++++-
.../integration/addressing/AddressingTest.java | 49 ++++++++++++----------
3 files changed, 39 insertions(+), 23 deletions(-)
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
index aeb44d57b9..fb9683d176 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/ActiveMQServerLogger.java
@@ -1515,4 +1515,7 @@ public interface ActiveMQServerLogger {
@LogMessage(id = 224149, value = "Messages are being dropped on queue {}.
PurgeOnNoConsumers=true and there are no consumers on this queue.", level =
LogMessage.Level.INFO)
void noRouteNoConsumers(SimpleString queueName);
+
+ @LogMessage(id = 224150, value = "Messages will be dropped on queue {}.
Queue is disabled.", level = LogMessage.Level.INFO)
+ void noRouteMessagesWillBeDropped(SimpleString queueName);
}
diff --git
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 91951f6da2..9caf9c43db 100644
---
a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++
b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -455,9 +455,16 @@ public class QueueImpl extends CriticalComponentImpl
implements Queue {
? ActiveMQDefaultConfiguration.INITIAL_QUEUE_BUFFER_SIZE
: this.cachedAddressSettings.getInitialQueueBufferSize();
this.intermediateMessageReferences = new
MpscUnboundedArrayQueue<>(initialQueueBufferSize);
+
+ verifyDisabledConfiguration();
+ }
+
+ private void verifyDisabledConfiguration() {
+ if (noRouteLogging && !this.queueConfiguration.isEnabled()) {
+
ActiveMQServerLogger.LOGGER.noRouteMessagesWillBeDropped(this.getName());
+ }
}
- // Bindable implementation
-------------------------------------------------------------------------------------
@Override
public boolean allowsReferenceCallback() {
@@ -659,6 +666,7 @@ public class QueueImpl extends CriticalComponentImpl
implements Queue {
@Override
public synchronized void setEnabled(boolean value) {
queueConfiguration.setEnabled(value);
+ verifyDisabledConfiguration();
}
@Override
diff --git
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
index 8cb746ac10..32a22eab4c 100644
---
a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
+++
b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/addressing/AddressingTest.java
@@ -341,20 +341,23 @@ public class AddressingTest extends ActiveMQTestBase {
SimpleString enabledQueue =
SimpleString.of(UUID.randomUUID().toString());
SimpleString disabledQueue =
SimpleString.of(UUID.randomUUID().toString());
-
//Validate default is enabled, and check that queues enabled receive
messages and disabled do not on same address.
-
server.createQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST));
-
server.createQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-
server.createQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
- assertNotNull(server.locateQueue(defaultQueue));
- assertNotNull(server.locateQueue(enabledQueue));
- assertNotNull(server.locateQueue(disabledQueue));
ClientSession session = sessionFactory.createSession();
ClientProducer producer = session.createProducer(address);
+
try (AssertionLoggerHandler loggerHandler = new
AssertionLoggerHandler()) {
+
server.createQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST));
+
server.createQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+
server.createQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+ // one queue was disabled
+ assertEquals(1, loggerHandler.countText("AMQ224150"));
+
+ assertNotNull(server.locateQueue(defaultQueue));
+ assertNotNull(server.locateQueue(enabledQueue));
+ assertNotNull(server.locateQueue(disabledQueue));
producer.send(session.createMessage(true));
+ // the warning had already been sent when the queue was created
assertEquals(1, loggerHandler.countText("AMQ224148"));
}
@@ -366,12 +369,13 @@ public class AddressingTest extends ActiveMQTestBase {
Wait.assertEquals(1, server.locateQueue(enabledQueue)::getMessageCount);
Wait.assertEquals(0, server.locateQueue(disabledQueue)::getMessageCount);
- //Update Queue Disable All
-
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
try (AssertionLoggerHandler loggerHandler = new
AssertionLoggerHandler()) {
+ //Update Queue Disable All
+
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+ assertEquals(2, loggerHandler.countText("AMQ224150"));
+
producer.send(session.createMessage(true));
producer.send(session.createMessage(true));
// we should be informed only twice even though there are 3 queues,
as one of those were already informed before
@@ -383,13 +387,12 @@ public class AddressingTest extends ActiveMQTestBase {
Wait.assertEquals(0, server.locateQueue(disabledQueue)::getMessageCount);
- //Update Queue Enable All
-
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
-
-
try (AssertionLoggerHandler loggerHandler = new
AssertionLoggerHandler()) {
+ //Update Queue Enable All
+
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(true));
+
producer.send(session.createMessage(true));
assertFalse(loggerHandler.findText("AMQ224148"));
}
@@ -399,11 +402,13 @@ public class AddressingTest extends ActiveMQTestBase {
Wait.assertEquals(1, server.locateQueue(disabledQueue)::getMessageCount);
// disable again
-
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
-
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
try (AssertionLoggerHandler loggerHandler = new
AssertionLoggerHandler()) {
+
server.updateQueue(QueueConfiguration.of(defaultQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+
server.updateQueue(QueueConfiguration.of(enabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+
server.updateQueue(QueueConfiguration.of(disabledQueue).setAddress(address).setRoutingType(RoutingType.MULTICAST).setEnabled(false));
+ assertEquals(3, loggerHandler.countText("AMQ224150"));
+
for (int i = 0; i < 10; i++) {
producer.send(session.createMessage(true));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact