2

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

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

  • 来自最新的 Thorntail 文档:
    指定最大池大小是否以及应该来自什么。未定义的值(或已弃用的值“none”被转换为未定义)表示应该使用显式的 max-pool-size 值。

这是我之前在 WildFly project-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))

如果有人有上述源代码的链接,那就太好了。我能找到的唯一链接似乎来自 JBOSS,因此代码看起来像是跨平台移植的,并未公开发布。

4

1 回答 1

1

问题更新后:更改了几个分数的默认配置,以更好地与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,这确实有效。)

于 2018-09-17T07:01:51.270 回答