java - 在回滚过程中写入数据库日志

标签 java transactions jboss jakarta-ee ejb-3.0

我使用的是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/

相关文章:

java Codingbat notAlone — 为什么它不适用于这个特定示例

java - Spring异常时事务回滚

php - MySQL 自动提交与 begin_transaction

tomcat - 哪个 AS 更适合 EJB-2 应用程序,客户端代码将驻留在 tomcat6 中

java - Jboss 服务器错误 :Server already running on localhost

java - AWS实例限制和监控API

java - 如何通过网页按需显示 Java 应用程序的当前状态

java - 解析java xml文件中的字符串

grails - 如何在 Grails 中指定默认事务隔离级别

java - Jboss 4.2.3 GA附加部署目录