问题标签 [activemq-artemis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
754 浏览

activemq - JBoss7 eap 中的 HornetQ 支持

在 Jboss7 EAP 中,activeMQ 是默认的消息传递系统。是否仍然支持旧版 HornetQ。如果我想让我的战争使用 HornetQ 而不是 ActiveMQ,有可能吗?

0 投票
1 回答
2524 浏览

java - 如何在 WildFly 10 中动态更改 JMS 队列 MDB 池大小

我正在使用与 Artemis 作为新 JMS 提供程序一起提供的 WildFly 10.1,但我无法找到如何动态更改特定 MDB 的消费者线程数。

我有一个队列和一个消息侦听器 (MDB) 从队列中消费消息,现在我想动态控制域必须启动的最大消费者线程数。

我怎样才能使用 CLI 做到这一点?

0 投票
1 回答
1095 浏览

ssl - JMS over SSL:客户端启动 STARTTLS 但通道不支持 SSL (WildFly 10)

从 JBoss AS 7 升级到 WildFLy 10 后,我们遇到了来自远程客户端的连接问题,该客户端充当 JMS 生产者。

基于 SSL 的 JMS:客户端启动 STARTTLS 但通道不支持 SSL

服务器配置不打算使用 SSL,客户端也不打算使用 SSL,但客户端正在尝试保护通道,尽管我们不需要它并且我们没有更改之前工作的客户端配置。

客户端上下文属性:

服务器配置:

堆栈跟踪:

0 投票
2 回答
4073 浏览

netty - AMQ214013:无法解码数据包:java.lang.IllegalArgumentException:AMQ119032:无效类型:1

我在widlfly 上的activeMQ 工作正常,从周一开始,本周我开始出现这个异常并且非常频繁。

起初,我去堆栈跟踪并通过代码 grep 查看引发此异常的代码,在我看来,问题可能与消息的大小有关。我停止了在队列中输入消息的过程。并打开我的野蝇。队列没有数据,但我仍然得到这个异常。

我从数据目录中删除了 activeMQ 数据目录和 tx-object-store。我开始使用wildlfy,它也有同样的问题。我仍然得到这个例外。有一个站点(https://www.mail-archive.com/users@activemq.apache.org/msg36343.html)说可能是端口定义错误。但是我已经使用这个配置几个月了,我似乎没有改变任何东西,也没有将 Wildfly 10 升级到另一个版本。所以库还是一样的。

如果没有数据流过activeMQ,谁能告诉我为什么会出现这个错误。我删除了数据目录,因此没有加载任何内容供其解码,也没有接收任何内容放入要解码的队列中。

我在 Artemis 中调高了日志级别,异常看起来像这样,它在这个日志中得到了什么。我没有向它发送任何要处理的消息,但它仍在处理某些东西。

问题似乎来自 NETTY,但似乎无法指出我的配置错误的地方,尤其是当我认为它们没有在任何地方更改时。

我的 Standalone.xml:

0 投票
1 回答
504 浏览

activemq - 容灾站点中的ActiveMQ

我们使用 activemq 作为我们解决方案的关键路径。我们正在创建一个 DR 站点,因此我们想要实现主从配置。我们正在使用 KahaDB,但由于不支持此http://activemq.apache.org/kahadb-master-slave.html,因此我们无法在生产环境中真正使用它。共享磁盘是单点故障,因此它不是真正的 DR。JDBC 比较慢。有没有人实施过这样的解决方案?哪个选项最可靠且不影响性能?

我阅读了有关 ActiveMQ Artemis 的信息,它似乎具有我需要的主从功能,但我找不到如何将我当前的 activemq.xml 队列配置文件迁移到 Artemis,所以如果有人有关于将 ActiveMQ 迁移到 ActiveMQ Artemis 的提示也会很有帮助。

谢谢。

0 投票
1 回答
2408 浏览

ssl - 在 Wildfly 10 上保护 activemq

我正在尝试将消息传递-activemq子系统配置为使用https而不是 http(以完全消除对 http 的使用)。

我已阅读:https ://access.redhat.com/documentation/en/red-hat-jboss-enterprise-application-platform/7.0/single/configuring-messaging/#securing-remote-connections-jms-server

在 Wildfly 配置文件,messaging-activemq 子系统中,我更新了 http-connector、http-connector-throughput、http-acceptor 和 http-acceptor-throughput 以使用 https。Wildfly 服务器启动时没有错误。但是,当我尝试从客户端连接时,我收到诸如“javax.jms.JMSException: Failed to create session factory”之类的客户端错误。在服务器上,我收到类似“UT005013:发生 IOException:javax.net.ssl.SSLException:无法识别的 SSL 消息,明文连接?”之类的消息。

我搜索了 RedHat 和 JBoss 文档(以及更多),但没有找到如何配置客户端和连接以使用https与 Wildfly 10 activemq 对话的解决方案。

服务器配置:

(http-listener 从 undertow 中删除,http-acceptor 的 http-listener 属性从“default”更改为“https”,http-acceptor 中的套接字绑定更改为“https”)

更多服务器配置:

客户端尝试连接时的服务器错误消息:

客户端尝试读取 JMS 消息时的客户端错误消息:

看起来客户端正在尝试通过 HTTP 进行通信,但我不知道如何配置连接以使用 HTTPS。

如何配置 Wildfly 10 服务器(和客户端)以通过 https 使用消息传递-activemq?

0 投票
1 回答
803 浏览

java - 通过 JNDI 将 Tomcat 连接到独立的 Artemis Broker

我想在 tomcat server.xml 中将 jms ConnectionFactory 定义为全局资源,以将我的 webapps 连接到独立的 Artemis 服务器。

不幸的是,对于这样一个描述所需库和配置的常见用例,我找不到任何官方或干净的手册。

有人可以给我举个例子吗?

0 投票
1 回答
439 浏览

spring-boot - Spring Boot SockJS over stomp 和 Apache Artemis

我有一个聊天应用程序,使用 Spring Boot 和 SockJS over STOMP 创建,由外部 ActiveMQ 代理支持,我的问题是在大约 4000 个客户端连接和 10000 个 ActiveMQ 目标之后,ActiveMQ 崩溃,与 KahaDB 相关的内存不足。我想切换到 Apache Artemis,因为博客提到它比 ActiveMQ 性能更好,并且可以处理更多的客户端连接,并且还实现了非阻塞。我希望只是用 Artemis 换掉 ActiveMQ,但是,我看到客户端连接并且订阅主题和队列,但他们没有通过 Artemis 接收消息。

和想法可能是什么问题?这是我在 Artemis broker.xml 配置文件中的设置:

任何帮助将非常感激。

提前致谢。

0 投票
1 回答
1241 浏览

java - Wildfly 10 上带有 ActiveMQ Artemis 的 Websockets / STOMP 无法正常工作

我正在使用 Spring WebSockets 实现一个 WebSockets 应用程序。

作为 STOMP 经纪人,我想使用 Wildfly 的 Artemis (Active MQ)。

我在standalone-full.xml 中做了以下配置:

  • 添加以下接受者:

    /li>
  • 使用 add-user.bat 将新的应用程序用户 guest/guest 添加到 application-users.properties

  • 添加以下 StompConfiguration(缩写):

    /li>

这似乎在启动时运行良好:

16:57:13,890 INFO [org.apache.activemq.artemis.core.server](ServerService 线程池 -- 64)AMQ221020:在 localhost:61613 开始接受协议 [STOMP] 16:57:13,892 INFO [org.apache .activemq.artemis.core.server] (ServerService 线程池 -- 64) AMQ221007:服务器现已上线

但是,我使用 Spring 的 SimpMessagingTemplate 发送第一条消息:

我得到错误

错误 [org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler] (reactor-tcp-io-1) 收到错误 {message=[AMQ339001: 目标不存在:/topic/abc/12345/xyz]} session= system

使用 Stomp,不必事先创建主题。我如何告诉 Artemis 自动创建它?

0 投票
1 回答
939 浏览

java - Apache Artemis 如何管理堆空间 (RAM)

在我们的项目中,我们使用两个队列,一个用于正常处理,另一个用于错误处理。“错误”队列有时会充满“错误”消息,这些消息一直坐在那里,直到有人检查它们。在某些情况下,“错误”队列会填满大量消息,然后 JVM 会耗尽堆。

例如,目前,JVM 配置了最大 4GB 堆,并且随机出现 OOM 异常。我们使用了 MemoryAnalyzer 和 IBM Heap Analyzer,两者都有点指向 Artemis。当我检查文件系统上日志的大小时,大约是 5GB。

我们发送:

  • 小消息
  • 执着的
  • 不使用 Netty 或远程处理(仅使用 Artemis 进行异步处理)

所以,我的问题是关于 Apache Artemis 堆管理和建议:

  1. 它是否也将持久消息存储在 RAM 中,即使它们已经存储在文件系统中?
  2. 如果 #1 为真,那么控制/限制 Artemis 分配的 RAM 数量的策略是什么?

感谢任何帮助!