java - 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)
我猜当出现异常时,提交的连接不会被释放。是否需要一些额外的配置?
解决方案
推荐阅读
- c++ - 如何捕获或记录内存释放错误?
- python - 制作三角形最简单的方法是什么
- ios - “Runner”需要配置文件。在签名和功能编辑器中选择配置文件
- mysql - sum 子查询返回多于 1 行,但不是作为独立查询
- ruby-on-rails - 从免费 Heroku Redis 计划升级到第一个付费层后,我们的应用程序崩溃并且无法运行
- javascript - 不理解 api 响应 (FRONTEND MENTOR)
- vb.net - ListViewGroup 显示项目但不显示标题
- amazon-web-services - .aws 目录在哪里?
- node.js - 是否可以同时运行多个不同的 pm2 实例?
- json - 具有重复键的 Python3 JSON 解析