Jms 如何修复新的ActiveMQ Artemis安装阻塞问题?

Jms 如何修复新的ActiveMQ Artemis安装阻塞问题?,jms,activemq-artemis,Jms,Activemq Artemis,我的任务是为JMS客户机评估ActiveMQ Artemis。我有RabbmitMQ的经验,但没有使用ActiveMA-Artemis/JMS的经验 我在本地机器上安装了Artemis,按照说明创建了一个新的代理,并将其设置为windows服务。windows服务可以正常启动和停止。我没有对broker.xml文件做任何更改 在我的第一个测试中,我尝试从一个独立的Java程序执行JMS队列生成/使用。我正在使用Artemis用户手册中“使用JMS”部分的代码(不使用JNDI): 运行此代码时,出

我的任务是为JMS客户机评估ActiveMQ Artemis。我有RabbmitMQ的经验,但没有使用ActiveMA-Artemis/JMS的经验

我在本地机器上安装了Artemis,按照说明创建了一个新的代理,并将其设置为windows服务。windows服务可以正常启动和停止。我没有对broker.xml文件做任何更改

在我的第一个测试中,我尝试从一个独立的Java程序执行JMS队列生成/使用。我正在使用Artemis用户手册中“使用JMS”部分的代码(不使用JNDI):

运行此代码时,出现以下错误:

警告:AMQ212054:目标地址=jms.queue.OrderQueue被阻止。如果系统配置为阻止,请确保使用此配置上的消息

我的研究还没有得出结论,这是服务器端设置,还是让制作人发送而不阻塞。我还没有找到一个只有持久性的阻塞布尔值的生产者发送方法。有没有关于重点放在哪里的想法

编辑:添加到broker.xml中的新地址设置元素专用于此队列:

<address-setting match="jms.queue.OrderQueue">
    <max-size-bytes>104857600</max-size-bytes>
    <page-size-bytes>10485760</page-size-bytes>
    <address-full-policy>PAGE</address-full-policy>
</address-setting>

104857600
10485760
页

当地址策略设置为阻止且达到内存时,会出现此警告消息。检查broker.xml中的设置。如果设置为“阻止”,请将其更改为第页。或者使用OrderQueue中挂起的消息。

我在用户手册的进一步研究中发现:

最大磁盘使用率我们应该从磁盘使用的最大数据百分比。 磁盘已满时,系统将阻塞。默认值=100

在服务启动后的日志中,尚未发布任何消息:

警告[org.apache.activemq.artemis.core.server]AMQ222210:存储使用量超出了最大磁盘使用量。系统将开始阻止生产者


所以我认为无论我的地址设置如何,它都会开始阻塞。查看broker.xml中的最大磁盘使用率设置,它被设置为90。文档默认值为100,我设置为100,没有启动日志警告,我的测试发布/订阅代码现在可以工作。

谢谢您的帮助,我选中了这个,两个地址设置项都设置为“地址完整策略”页面。我做了一些进一步的搜索,发现了这个页面:My broker.xml缺少max size字节和page size字节条目,所以我添加了这些条目。但是现在代理不会启动添加的服务,我得到一个windows服务启动错误。这是一个通用的服务不会启动消息。然而,我在你提供的链接上做了一些研究。我为这个队列添加了一个额外的地址设置元素(请参阅原始帖子中的新元素)。代理现在启动正常,但我仍然收到阻止消息。即使AMQ212054发出警告消息,消费者是否读取了文本消息?
<address-setting match="jms.queue.OrderQueue">
    <max-size-bytes>104857600</max-size-bytes>
    <page-size-bytes>10485760</page-size-bytes>
    <address-full-policy>PAGE</address-full-policy>
</address-setting>