gpt4 book ai didi

java - JMS 确认异步消息

转载 作者:行者123 更新时间:2023-12-01 19:25:06 25 4
gpt4 key购买 nike

使用消息监听器时如何确认消息?

当我尝试在消息监听器中进行确认时,出现以下错误。

A synchronous method call is not permitted when a session is being used asynchronously: 'acknowledge'

最佳答案

您正在谈论 JMS 消息确认,如 Message.acknowledge() 中所示。 ?

这个错误看起来有点奇怪。如果您不使用事务或自动确认,我认为您需要调用该方法。如果您正在进行异步监听,除了 onMessage() 方法之外,您还会在哪里执行此操作?

此调用是否在与 onMessage() 调用相同的线程中完成?换句话说,是在 onMessage() 中还是在 onMessage() 调用的某个方法中?如果没有,您就违反了 JMS 的线程规则。 session 和生产者/消费者以及任何进一步的内容(如消息)都不是线程安全的。您需要确保没有从多个线程接触它们。如果您正在进行 onMessage() 调用,并且以某种方式安排另一个线程来执行 Message.acknowledge() 调用,那么您应该因为线程问题而失败。如果是这样,请将该回调移回到运行 onMessage() 的同一线程上。

关于java - JMS 确认异步消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1669746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com