首页 > 解决方案 > jboss中新的spring事务导致的数据库连接泄漏

问题描述

我们在 jboss 服务器上部署了一个 REST 服务。直到最近,我们只配置了一个事务,那就是在服务层。因此,要么事务成功,并且所有内容都已提交,或者如果出现异常,则所有内容都回滚。

即使服务返回失败响应,我们现在也已开始向表中添加记录。为了实现这一点,我们在 REST 服务使用的 api 中添加了一个注解:

@Transactional(propagation = Propagation.REQUIRES_NEW)

这意味着如果我们从服务中抛出异常,则该行将保存到数据库中。

但是,由于我们添加了这个新事务,我们遇到了连接泄漏,我可以在日志中看到这一点:

javax.resource.ResourceException:IJ000453:无法在 org.jboss.as.connector 的 org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:151) 处获取 java:/jdbc/xxx 的托管连接。子系统.datasources.WildFlyDataSource.getConnection(WildFlyDataSource.java:69)

我猜当出现异常时,提交的连接不会被释放。是否需要一些额外的配置?

标签: javaspringjboss

解决方案


推荐阅读