On z/OS®, message-driven bean throttling mechanisms control the amount of work that the server processes at any given time for a message-driven bean. The throttling mechanism limits how far the listener will read ahead to try to ensure that the work request queue does not have a backlog of messages to be processed.
The MDB throttling mechanism is needed because the preprocessing, classification, building, and queuing of a work record to prepare for the dispatch of a message-driven bean is a simple operation, when compared with the business logic of the message-driven bean and the container infrastructure on the application dispatch path. This means that, when messages arrive at the WMQ queue at a high rate, the controller can preprocesses the messages faster than the message-driven bean application that is running in the servant regions. Peaks in asynchronous work cause a build up of messages in the workload management (WLM) work request queue, because these messages are waiting for worker threads in the servants that have a backlog of messages to be processed. For example, a backlog of messages to be processed can occur when a scalable server is taken out of service. Messages build up on the JMS destination waiting for the server to restart. When the server does restart, a flood of new work is introduced into the server.
To avoid a backlog of messages on the WLM work request queue, the message-driven bean throttling mechanism limits how far the message listener port canread ahead down the JMS queue or topic.