Hi all, I'm trying to understand the behaviour of ActiveMQ Artemis. I'm using Wildfly14 with ActiveMQ Artemis version 4.0. <subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
In conjunction with MDBs, messages will be sent to a queue and consumed (16 sessions for MDB). Some messages need about 10s to process, some 10m. Initial problem was, that some messages have been stuck behind long running messages on consumer side. That's why I set consumerWindowSize to 0. What I was expecting is that consumerWindowSize=0 prevents the case that short running messages stuck behind long running, because ActiveMQ notices that one MDB session is busy so the message will be sent to other MDB session. That did not work as expected. In any case all the MDBs got an equal amout of messages at beginning, which led to same behaviour. I checked this by using HawtIO and operation listDeliveringMessagesAsJson(). There I could see that each destination (I guess the MDBs) got all nearly same amout of messages. [{ "consumerName": "ServerConsumer ..., "elements": [ // 12 entries ] }, { "consumerName": "ServerConsumer ..., "elements": [ // 12 entries ] }, { "consumerName": "ServerConsumer ..., "elements": [ // 12 entries ] }, ... At the same time I checked the logs (TRACE level) and saw that server is pushing all messages to clients immediately, which, I suppose, leads to this behaviour. In the end I'm stuck at the same point, that slow messages are stuck behind long running ones, because they were published to same MDB session. How can I change this behaviour? The MDB session should get a message only if it has finished processing of one message. Not the full load at start of process. Thank you! BR Marvin