【问题标题】:MDB Message ThrottlingMDB 消息限制
【发布时间】:2014-01-10 07:12:33
【问题描述】:

我在我的应用程序中使用 EJB MDB 3.0 和 WAS 7 服务器。我有 7 个 MDB,因此在 WAS 服务器上创建了 7 个队列和 7 个激活规范。我已将所有 7 个激活规范 maxPoolDepth 设置为 6,将资源适配器客户属性 concurrentSession 设置为 1,将 maxConnections 设置为 10。DataSource maxConnections 设置为 60。MDB 基本上使用消息详细信息更新 Solid DB。问题是当在队列中发布数千条消息时,应用程序创建了太多的数据库连接(超过 60 个)导致数据库性能问题。所以我认为我需要限制每秒处理的消息数量。

如果我设置了 Activation Specs maxPoolDepth,那么我是否需要在 WAS 控制台上创建 WorkManager 和/或 Scheduler,但是我没有找到在应用程序中配置 WorkManager 和 TimerManager 的位置。因为我只有 ejb-jar-bnd.xml(用于配置消息驱动的 bean)和 Spring bean 配置 XML 文件。在这种情况下,我还需要 TimerManager 吗?或者有没有其他方法可以通过更新 MDB 本身中的一些注释来控制消息限制?

另外,在 Activation Spec 上设置 maxPoolDepth 属性和在 MDB 本身中给 @ActivationConfigProperty(propertyName = "maxSession", propertyValue = "6") 注解有什么区别?

【问题讨论】:

    标签: java jms websphere-7 message-driven-bean


    【解决方案1】:

    关于动作规范配置:

    Admin Console > Resources > JMS > Activation Specifications 有一个设置

    “每个端点的最大并发 MDB 调用”

    我通常保留我的 10 个。你可能想玩这个数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2012-01-13
      • 2012-02-07
      • 2017-06-13
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多