Is there a standard way to control concurrency and consumption in MDB? Each sentence I could find seems to be a specific application server or resource adapter (e.g. maxSession @ActivationConfigProperty).
Problem ™
We perform several relatively heavy analysis tasks on a two-stage JBoss setup (EAP 6.3) and want to parallelize the tasks and also impose an upper limit on the number of parallel tasks so that we do not load the server database. Tasks are launched from the web interface and should be started whenever there is a free processing slot - there are no restrictions on priority or ordering. We use the message queue (IBM WMQ, due to policy) to distribute "start analysis" messages to nodes.
Current progress
After a lot of search attempts on various offers that turned out to be inoperative for Resource-adaptable Cargo-Cult Misinformation ™ :) data, I thought the problem was solved by defining an EJB pool for ICBMs. This solves the concurrency problem, but unfortunately it looks like a node without free MDB is still pulling queue messages, which may leave one node unused and the other fully loaded with a lag.
If I understand the IBM documentation correctly , this behavior should be controlled by the readAheadAllowed configuration parameter , but this does not seem to affect my results.
So, is there:
- Standard way to manage message consumption in Java EE?
- A (operational) IBM WQ configuration option:
- JBoss ?
- , ?
, , node - UPDATE Projects SET Status='inprogress' WHERE Id=42 AND Status='inqueue'; - , , , , :)