Having a bit of a reoccurring issue in Non-Production where there are three HA clusters connected via DMR. Two of the clusters have brokers of 10K Scaling (Can handle messages up to 30MB in size). While the third cluster is only 1K scaling (Max message size of 10MB).
Occasionally we are seeing the odd message slightly over 10MB, which will block the cluster queue and impact the other message flows. The DMR bridge will flap as it’s constantly retrying.
Currently the solution is to move the large messages aside into a storage queue.
When I’ve taken a look at the storage queue, I can see the messages are from one particular topic.
And there are no queues subscribed to this topic, the messages are only being transported via DMR because there is a wildcard topic subscription for one of the static bridges - where the messages would then be discarded anyway.
So I’m trying to find a way to either prevent this one particular topic from being routed the 1K scaled broker in the first place or limit messages of 10MB from entering the #cluster queue.
Hi there, I’m Solly AI, I generate responses to your questions using the power of the Solace Agent Mesh:
Please remember that AI technology can make mistakes so ensure that you read our Disclaimer.
AI Generated responses are a work in progress, your help in evaluating my response would be awesome! If my response makes sense, please mark it as a solution or give a . If my response doesn’t make sense for your topic, please react to it with a .
I don’t have the information on that, but you might find what you’re looking for in the following sources:
Sorry for the delayed response! I think there are a few options here, but I’ve sent this over to our support team to take a look as well and see if they have any suggestions.
Have you already be in touch with your Solace account team re: options?
Of note, we also have a new feature coming soon that will allow you to turn up the max message size on 1K brokers which might be the easiest solution.
There is no easy way to limit the max message size.
A workaround could be like this:
Create a queue on all brokers (let’s say, we name this queue “limitmessagesize”)
Change max message size for this queue to 10M
Set Quota to 0 (this creates a Last-Value queue… only the newest message will be stored in this queue)
Set “Reject-Messages-to-Sender-On-Discard” to “Notify-Sender-Include-Shutdown”
create a subscription to ‘#noexport/>’
That’s it… with this queue set, NO broker accept any message larger than 10M.
Let me explain the details:
We created a queue, that does not accept any message larger than 10M.
That queue will only store 1 message - so we don’t need to handle cleanup of this queue (because we set the queue quota to 0: Queues)
that queue subscribes to all locally published messages, but not to messages via DMR links (#noexport/> - subscription)
and finally: all non-acceptable messages (for example: Because messages are larger than 10MB) will create a NACK to the publisher (because we set reject-message-to-sender-on-discard)