ActiveMQ Artemis 错误 AMQ224065 解释?
ActiveMQ Artemis error AMQ224065 explanation?
在ActiveMQ Artemis 2.15.0 版本中,我们正在自动创建队列。与默认自动删除设置为 true(未更改)一样。我们不时看到以下日志。从日志消息看来,服务器似乎试图删除自动创建的队列但失败了,因为它有 1 条消息。我的问题是为什么代理在队列中有消息时尝试删除队列?
2020-10-22 02:48:23,599 ERROR [org.apache.activemq.artemis.core.server] AMQ224065: Failed to remove auto-created queue test:
ActiveMQIllegalStateException[errorType=ILLEGAL_STATE message=AMQ229215: Cannot delete queue test on binding test - it has 1 messages]
如您所想,代理有很多线程执行许多不同的任务。完全有可能从队列中删除最后一条消息,代理启动删除队列的进程,然后在 mean-time 中另一个线程将消息添加到队列中。在这种情况下会记录此 ERROR
消息。
我建议您为地址和队列禁用 auto-delete,或者至少将 auto-delete-queues-delay
和 auto-delete-addresses-delay
设置为 non-zero 值(例如 5000)。未来版本的代理将默认禁用自动删除。
在ActiveMQ Artemis 2.15.0 版本中,我们正在自动创建队列。与默认自动删除设置为 true(未更改)一样。我们不时看到以下日志。从日志消息看来,服务器似乎试图删除自动创建的队列但失败了,因为它有 1 条消息。我的问题是为什么代理在队列中有消息时尝试删除队列?
2020-10-22 02:48:23,599 ERROR [org.apache.activemq.artemis.core.server] AMQ224065: Failed to remove auto-created queue test:
ActiveMQIllegalStateException[errorType=ILLEGAL_STATE message=AMQ229215: Cannot delete queue test on binding test - it has 1 messages]
如您所想,代理有很多线程执行许多不同的任务。完全有可能从队列中删除最后一条消息,代理启动删除队列的进程,然后在 mean-time 中另一个线程将消息添加到队列中。在这种情况下会记录此 ERROR
消息。
我建议您为地址和队列禁用 auto-delete,或者至少将 auto-delete-queues-delay
和 auto-delete-addresses-delay
设置为 non-zero 值(例如 5000)。未来版本的代理将默认禁用自动删除。