我曾经在 Windows、Linux 和 WSL 上的 ActiveMQ Artemis 中创建代理。从来没有出现过问题。 除了我的一台装有 Windows 并运行 WSL2 的机器。
我在安装 artemis 时所做的一切都是一样的:
sudo groupadd artemis
sudo useradd -s /bin/false -g artemis -d /opt/artemis artemis
cd /opt
sudo wget https://archive.apache.org/dist/activemq/activemq-artemis/2.12.0/apache-artemis-2.12.0-bin.tar.gz
sudo tar -xvzf apache-artemis-2.12.0-bin.tar.gz
sudo mv apache-artemis-2.12.0 artemis
sudo chown -R artemis: artemis
sudo chmod o+x /opt/artemis/bin/
sudo rm apache-artemis-2.12.0-bin.tar.gz
它安装了,但是当我尝试创建自己的代理实例时:
/opt/artemis/bin/artemis create --user app --password pwd --allow-anonymous test
我收到以下错误消息:
Cannot initialize queue:Function not implemented
我尝试了好几次,甚至卸载了ActiveMQ Artemis并删除了用户和组并重新启动了整个过程,但结果总是一样。
我不知道有什么区别或如何解决问题。任何帮助将不胜感激!
更新1: 日志不多,但打开详细模式会给出以下几行:
Executing org.apache.activemq.artemis.cli.commands.Create create --verbose --user app --password pwd --allow-anonymous test
Home::/opt/artemis, Instance::null
Cannot initialize queue:Function not implemented
据我所知,消息“无法初始化队列:功能未实现”来自AIO集成层。我建议您尝试使用
--nio
创建实例,以强制代理使用基于 Java 的 NIO 存储接口,而不是本机 AIO 层,后者在您的环境中似乎出现故障。