My Oracle Support Banner

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 10, 2021

Applies to:

Oracle WebLogic Server - Version 9.2 and later
Information in this document applies to any platform.

Symptoms

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?

Changes

 

Cause

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
Symptoms
Changes
Cause
Solution


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.