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”的组合如何失败出现上述错误。
- 来自最新的 Thorntail 文档:
指定是否应该派生最大池大小以及应该从中派生什么。一个
未定义的值(或 deprecated 值 'none' 被转换为
undefined) 表示 max-pool-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 中似乎已更改的代码如下:
.strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("mdb-strict-max-pool").maxPoolSize(20).timeout(5L).timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES))
.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
,确实可以。)
在过去的几天里,我一直在与一个问题作斗争,我认为该问题源于 Thorntail 中源代码的更改,不幸的是,该代码似乎并未公开。
我收到的错误是这样的:
"WFLYCTL0105: max-pool-size is invalid in combination with derive-size".
以前你可以只在配置中留下一个“derive-size”并且没有问题但是现在任何时候我都包含了“max-pool-size”无论与“derive-size”的组合如何失败出现上述错误。
- 来自最新的 Thorntail 文档:
指定是否应该派生最大池大小以及应该从中派生什么。一个 未定义的值(或 deprecated 值 'none' 被转换为 undefined) 表示 max-pool-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 中似乎已更改的代码如下:
.strictMaxBeanInstancePool(new StrictMaxBeanInstancePool("mdb-strict-max-pool").maxPoolSize(20).timeout(5L).timeoutUnit(StrictMaxBeanInstancePool.TimeoutUnit.MINUTES))
.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
,确实可以。)