当 deployBridge 与 DEFAULT_CONFIRMATION_WINDOW_SIZE(-1)

Can't set confirmationHandler on a connection with confirmation-window-size < 0 error when deployBridge with DEFAULT_CONFIRMATION_WINDOW_SIZE(-1)

我尝试通过 ActiveMQServer.deployBridge(BridgeConfiguration config) 部署 Core Bridge,我为 confirmationWindowSize[=20 创建了默认值 (DEFAULT_CONFIRMATION_WINDOW_SIZE = -1) 的 BridgeConfiguration =]

并将其放入 ActiveMQServer.deployBridge(BridgeConfiguration config),但在那之后,我得到了错误

You can't set confirmationHandler on a connection with confirmation-window-size < 0. Look at the documentation for more information.

我哪里做错了或者是错误?

阿尔忒弥斯版本 2.16.0

这看起来像是 org.apache.activemq.artemis.core.config.BridgeConfiguration#confirmationWindowSize 默认值的一个小错误。目前它正在使用这个:

private int confirmationWindowSize = ActiveMQClient.DEFAULT_CONFIRMATION_WINDOW_SIZE;

但是,它应该使用这个:

private int confirmationWindowSize = ActiveMQDefaultConfiguration.getDefaultBridgeConfirmationWindowSize();

您可以通过手动设置确认 window 大小来解决此问题,例如:

BridgeConfiguration myBridgeConfiguration = new BridgeConfiguration();
myBridgeConfiguration.setConfirmationWindowSize(ActiveMQDefaultConfiguration.getDefaultBridgeConfirmationWindowSize());

我打开了a Jira issue for this, sent a PR,PR已经合并了。修复将出现在 ActiveMQ Artemis 2.17.0 中。