只读 JMS 主题订阅? (或在出队时保留 JMS 消息)
Read-only JMS topic subscription? (or preserve JMS messages when dequeuing)
我在生产环境中有一个客户数据的 ActiveMQ 消息积压主题,我需要编写一个脚本来使它出列并执行任何必要的业务逻辑。
如果业务逻辑出现问题,但我已经阅读了消息(可能通过 JMS),这可能意味着所有消息都消失了 - 我会遇到大麻烦。
有没有办法在不删除消息的情况下阅读消息?
这是消息传递中的常见模式。如果您使用的是 JMS API,您有几个选择:
- 创建会话时使用 CLIENT_ACKNOWLEDGE 模式,并在业务逻辑完成后确认消息。如果业务逻辑失败,则不确认该消息,并且不会将其从队列中删除。
- 使用事务会话。如果业务逻辑成功完成,则提交事务。如果业务失败则回滚事务。
这两种情况都很常见,您可以使用自己喜欢的搜索引擎找到有关所有正确 API 调用等的更多信息。
我在生产环境中有一个客户数据的 ActiveMQ 消息积压主题,我需要编写一个脚本来使它出列并执行任何必要的业务逻辑。
如果业务逻辑出现问题,但我已经阅读了消息(可能通过 JMS),这可能意味着所有消息都消失了 - 我会遇到大麻烦。
有没有办法在不删除消息的情况下阅读消息?
这是消息传递中的常见模式。如果您使用的是 JMS API,您有几个选择:
- 创建会话时使用 CLIENT_ACKNOWLEDGE 模式,并在业务逻辑完成后确认消息。如果业务逻辑失败,则不确认该消息,并且不会将其从队列中删除。
- 使用事务会话。如果业务逻辑成功完成,则提交事务。如果业务失败则回滚事务。
这两种情况都很常见,您可以使用自己喜欢的搜索引擎找到有关所有正确 API 调用等的更多信息。