A non-transactional MDB has very slow performance when a RuntimeException is thrown after an out-of-order message.
(Doc ID 1286306.1)
Last updated on AUGUST 16, 2022
Applies to:Oracle WebLogic Server - Version 9.2 and later
Information in this document applies to any platform.
You have a message-driven bean with max-beans-in-free-pool set to "4" and a custom WLS 8.1-style execute queue with a maximum of 4 threads. The MDB is non-transactional. The 4 MDB instances consume one message at a time because Messages Maximum is equal to "1".
Sometimes the MDB executes a long-running (20 to 30 minute) batch process . When this happens, all the MDB instances seem to wait for the long-running MDB instance to finish. In other words, if MDB 1 processed the 30-minute batch process, you observed that MDB 2 finished, followed by MDB 3 and MDB 4. MDB 2, 3, and 4 were then idle until MDB 1 finished. After MDB 1 finished, you saw four more messages delivered and pending. Why didn't the MDB instances process new messages until MDB 1 finished processing?
To view full details, sign in with your My Oracle Support account.
Don't have a My Oracle Support account? Click to get started!
In this Document