我有一个获取发票的方法,它创建XML并将该XML发送到JMS队列,然后将发票保存到DB,并更新状态,例如'发票'。下面是涉及Spring和Hibernate的伪代码。我的问题是:休眠失败是否会回滚Jms发送。如果JMS发送失败,我该如何回滚保存发票状态?这是分布式事务管理。这里涉及哪些交易案例。谢谢。
@Transactional(propagation=Propagation.Required)
void processInvoices(invoice ){
String xml = createXML(invoice);
messageService.sendInvoice(xml );
invoice.setStatus("invoiced");
save(invoice);
}
答案 0 :(得分:0)
根据我的知识和我从你的问题中理解你想要同步hibernate和JMS事务,为此,你需要使用JTA来管理Hibernate和JMS之间的事务