JAMES-2295 JMS mailqueue deadlock.
This issue is related to ActiveMQ prefetch mechanics. Now new give ability to configure prefetch size for all types of MailQueues.
Hi @chibenwa
I was trying to implement the new version of ConsumerOptions that we discussed.
interface ConsumerOptions {
ImmutableMap<String, String> parameters();
}
Here is sort of contradiction:
here we should reference the prefetchSize size, but we don't know whether underlying JMS implementation does support that option or not. Is there anything that I get wrong ?
Ah I see your concern...
Maybe JMSMailQueue can accept a ConsumerOptions interface. We don't implement this interface for JMSMailQueue as it don't make sens (as you mentionned above), and jsut provide an empty version. In the tests we can enforce the prefetchSize (as ActiveMQ is used under the hood) via a lambda.
In the tests we can enforce the prefetchSize (as ActiveMQ is used under the hood) via a lambda.
I really can't figure out how...
Is there any plan to carry on this work?
@chibenwa sorry, I've lost context for this PR long ago and actually don't have a time to proceed with it.
From what I can see the initial issue won't happen anymore because the dequeue semantic changed (ie reactor migration).
Having prefetch for ActiveMQ might make sense on a performance standpoint but I think that it is not required for correctness.
As such I will close this PR and ticket.
Thanks again for your time on diagnostic and proposing a fix.
Best regards,
Benoit