У меня есть приложение, которое выполняет отложенную операцию. Пользователь создает 1 миллион сообщений, которые хранятся в очереди JMS, а затем компоненты MDBean используют эти сообщения, выполняют некоторые действия и сохраняют данные в базе данных. Поскольку JMS Queue работает слишком быстро, он пытается создать 1 миллион экземпляров MDBean, которые, в свою очередь, пытаются создать 1 миллион подключений к базе данных. Неудивительно, что время ожидания некоторых из них истекает, поскольку пул соединений JDBC не может обслужить 1 миллион запросов на соединение.
Какое лучшее решение для контроля количества созданных компонентов MDBean? Было бы лучше, если бы 1 миллион сообщений обрабатывался определенным количеством MDBean, не превышающим количество разрешенных соединений в пуле JDBC.