我使用的是jboss5.1.x,ejb3.0
我有一个交易是这样的: MDB 监听 JMS 队列。 MDB 将 JMS 中的消息写入数据库。
在一些 catch 子句中,我抛出“New EJBException(..)”,以便在发生特定异常时进行回滚。
除此之外,我还配置了重试机制,在 3 次消息进入错误队列后。
我想要实现的是:
当我进行回滚时,我想增加当前的重试次数,因此如果 some1 正在观察数据库,他/她可以在线看到当前的重试次数。
问题是:当我进行回滚时,即使“insert_number_of_retry”查询也会回滚本身,这会阻止我将当前重试次数添加到数据库中
我该如何解决这个问题?
谢谢
射线。
最佳答案
您可以尝试通过使用 @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) 进行注释,在单独的事务中执行日志记录方法。
关于java - 在回滚过程中写入数据库日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715333/