Hi Nate,
I hope this reply is of some help to you, though I fear it may not be.
I am left speechless by the statement "The architect's solution to this is to simply stop consuming messages after the limit is reached, letting the persistent messages build up on the queue for several days in MQ." I really don't understand what hehopes to accomplish by this activity, other than perhaps hopelessly maintain a perpetually growing backlog of unprocessed messages.
There is no intrinsic method for throttling consumer applications in MQ, since one of the objectives of MQ is quick delivery of messages to their consumers. You should keep after the back-end application team for them to better understand why their system cannot consume moret han 250,000messages per day.
250,000 msgs per day == 10,416.66 msgs per hour == 173.66 msgs per minute == 2.89 msgs per second
As to your concern about retaining 3.5 million persistent messages in your queue manager, if your development team and your management all understand and agree that a continuous 24x7 throughput of less than 3 messages per second is acceptable for the back-end, and that MQ is not a throttling point, then you have no concerns - other than to remind everyone that when the input stream exceeds 250k msgs per day -- which is sounds like it does based on your assertion that "the queue depth could reach 3,000,000 messages over the span of a few days", not the 12 days that would be expected at 250,000 msgs per day -- the back-end application will not be able to keep up with the newly arriving messages and at some point
(1) MQ performance may start to suffer as the number of messages in the queue begins to exceed only a few multiples of 10,000 with active simultaneous MQGET and MQPUT operations
(2) MQ storage utilization will continually increase; if your messages average 4K in size, your may need as much as 30GB of storage to hold all these messages.
Good luck. lertr us know what happens.
Dave