max-pool-size 与 derive-size 结合使用无效

max-pool-size is invalid in combination with derive-size

在过去的几天里,我一直在与一个问题作斗争,我认为该问题源于 Thorntail 中源代码的更改,不幸的是,该代码似乎并未公开。

我收到的错误是这样的:
"WFLYCTL0105: max-pool-size is invalid in combination with derive-size".
以前你可以只在配置中留下一个“derive-size”并且没有问题但是现在任何时候我都包含了“max-pool-size”无论与“derive-size”的组合如何失败出现上述错误。

这是我之前在 WildFly 项目中使用的-defaults.yml,它运行得非常好:

ejb3:
    default-resource-adapter-name: activemq-rar.rar
    default-mdb-instance-pool: mdb-strict-max-pool
    strict-max-bean-instance-pools:
      mdb-strict-max-pool:
        max-pool-size: 1

任何想法或示例将不胜感激。

为回答问题添加了更多信息:

该项目已从使用 WildFly Swarm 2018.4.1 更新为使用 Thorntail 2.2。0.Final。

Thorntail 中似乎已更改的代码如下:

旧代码https://github.com/stuartwdouglas/wildfly-swarm-core/blob/master/ejb/api/src/main/java/org/wildfly/swarm/ejb/EJBFraction.java

.strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("mdb-strict-max-pool").maxPoolSize(20).timeout(5L).timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES))

新代码https://github.com/thorntail/thorntail/blob/802e785fdd515ecc1b52b22a64a6ff9338dace29/fractions/javaee/ejb/src/main/java/org/wildfly/swarm/ejb/EJBFraction.java

.strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("mdb-strict-max-pool").deriveSize(StrictMaxBeanInstancePool.DeriveSize.FROM_CPU_COUNT).timeout(5L).timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES))

如果有人对上述源代码有 link 那就太好了。我能找到的唯一 link 似乎来自 JBOSS,所以代码看起来像是移植过来的,没有公开提供。

问题更新后:更改了几个分数的默认配置,以更好地与 WildFly 11 中的默认配置保持一致。您可以配置 derive-size: null,然后 max-pool-size 应该生效。

类似于:

ejb3:
  default-resource-adapter-name: activemq-rar.rar
  default-mdb-instance-pool: mdb-strict-max-pool
  strict-max-bean-instance-pools:
    mdb-strict-max-pool:
      derive-size: null
      max-pool-size: 1

(注:之前这个答案推荐设置derive-size: none,但是不行。经过评论讨论,我改答案为推荐derive-size: null,确实可以。)