JAVA数据库异常回滚,事务回滚功能有时失效,报:java.sql.SQLException: The transaction is no longer active - status: 'Marke...

这篇博客探讨了如何处理Java中遇到的SQLException:事务不再活跃的问题,这通常是由于在关闭的连接上尝试执行数据库操作导致的。建议检查eos-governor中长时间运行的SQL语句,并启用SQL监控来追踪未关闭的连接、Statement和ResultSet。同时,检查代码中是否正确关闭了数据库连接,包括ResultSet、Connection和Statement。通过查询数据库当前连接数来确认是否存在未释放的连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、根据异常信息java.sql.SQLException: The transaction is no longer active - status: 'Marked rollback.来看,jdbc连接已关闭但仍在此事物中进行数据库操作导致的问题;

建议去查看下eos-governor中执行sql语句较长的情况。

2、检查是否存在连接未释放的情况,排查方法如下:

Governor中提供了SQL监控的功能,在监控参数配置中启用记录调用栈(如截图);重现问题后,刷新查看Governor—>数据库连接—>”未关闭连接”,”未关闭SQL Statement”,”

未关闭ResultSet”数据库连接情况,同时还能查看未关闭连接的调用栈,能直接看到那些功能是异常的;

3、检查客户的代码,看看是否存在连接未释放,方法如下:

1)检查时检查数据库当前的连接数为多大?如果存在大量的数据库连接,数据库可能存在未关闭连接的情况。

select username,count(username) from v$session where username is not null group by username;

2)检查代码看看数据库连接部分是否存在ResultSet、Connection和Statement是否都关闭了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值