我有一个执行延迟操作的应用程序。用户生成 100 万条消息,这些消息存储在 JMS 队列中,然后一个 MDBean 使用这些消息并执行一些操作并将数据存储在数据库中。由于 JMS Queue 工作得太快,它会尝试创建 100 万个 MDBean 实例,而这些实例又会尝试创建 100 万个数据库连接。由于 JDBC 连接池无法处理 100 万个连接请求,因此其中一些超时也就不足为奇了。
控制创建的 MDBean 数量的最佳解决方案是什么?100 万条消息最好由一定数量的不超过 JDBC 池中允许的连接数的 MDBean 处理