使用的是dbcp连接池,jdbc直接执行sql语句
有这样一条sql语句
UPDATE ETKTLOG SET WORK_ASGN_ID='" + newWorkID+ "' WHERE WORK_ASGN_ID='" + workID + "'";
在 ETKTLOG 表中 WORK_ASGN_ID字段是唯一约束的,在执行这条sql语句之前已经判断newWorkID不存在
update语句可以执行成功,并成功释放连接
但每执行一次这个sql语句,v$session都会多出一个 satus 为 inactive的连接
反复执行这条sql语句,就会造成连接池崩溃,不能再取出可用连接
将这条update语句 的更新set字段改为其他字段则一切都正常
这条语句的特殊之处是 set的字段和 where的字段一样,set的字段具有唯一约束
请达人指点怎么处理
有这样一条sql语句
UPDATE ETKTLOG SET WORK_ASGN_ID='" + newWorkID+ "' WHERE WORK_ASGN_ID='" + workID + "'";
在 ETKTLOG 表中 WORK_ASGN_ID字段是唯一约束的,在执行这条sql语句之前已经判断newWorkID不存在
update语句可以执行成功,并成功释放连接
但每执行一次这个sql语句,v$session都会多出一个 satus 为 inactive的连接
反复执行这条sql语句,就会造成连接池崩溃,不能再取出可用连接
将这条update语句 的更新set字段改为其他字段则一切都正常
这条语句的特殊之处是 set的字段和 where的字段一样,set的字段具有唯一约束
请达人指点怎么处理
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货