当消息被使用,且消息处理出现问题,且未保存在数据源中时。由于消息被使用,因此它不会出现在ActiveMQ代理和数据源中。是否有办法重新使用ActiveMQ中的消息?
wqsoz72f1#
这是一个典型的邮件丢失场景。处理这类用例的最可靠方法是使用XA事务,这样JMS工作和JDBC工作都是原子的。这意味着如果消息使用者出现问题,无法在数据库中插入数据,则可以回滚XA事务,并将消息放回队列中,以便再次使用它。一种不太可靠但更容易访问的处理方法是在使用消息时使用事务处理JMS会话。一旦数据库工作完成,您就可以确认消息并提交会话。如果出现问题,则回滚会话。
1条答案
按热度按时间wqsoz72f1#
这是一个典型的邮件丢失场景。
处理这类用例的最可靠方法是使用XA事务,这样JMS工作和JDBC工作都是原子的。这意味着如果消息使用者出现问题,无法在数据库中插入数据,则可以回滚XA事务,并将消息放回队列中,以便再次使用它。
一种不太可靠但更容易访问的处理方法是在使用消息时使用事务处理JMS会话。一旦数据库工作完成,您就可以确认消息并提交会话。如果出现问题,则回滚会话。