事务的影响

这篇文章来源于我在苏宁工作期间内,发生的一个生产问题,先简单交代一下背景:

一系统:联网核查系统上线.上线完成后进行验证的时候发现jboss连接database连接不上,在JNDI后台connection test发现是500,在日志中报错也是出现DataSource JDBC connection Time Out,这是异常现象.

原因:系统刚上线发布完成,恰逢晚上20:00,晚上20点后人行的联网核查服务关闭,我们系统主要是接入人行的联网核查服务,造成每我们接入人行IBMMQ超时时间为15秒,20:00的时候业务在跑批,一大批的交易进来,所以导致每一个交易都会出现最低15秒的超时.

按照理论,就算交易出现超时,也不影响该笔交易不释放数据源连接啊.最后我们经过日志出错位置的排查,发现和事务有关系,一笔这个事务切面已经切到了该超时,导致只有交易15秒超时过了以后,这个事务才算结束,只有事务结束以后,才会释放该数据源连接,从而导致jndi中连接池pool中的连接全部用完,出现connection 异常.

解决方案:

这个联网核查系统由于不涉及到多个操作同一个表的场景,不会出现脏读,所以我们将该系统的事务去除,去除后,大批量进来交易,联网核查系统还是能够稳定的运行,不会出现与数据库连接失败的场景

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值