日期:2014-05-18  浏览次数:20691 次

数据库锁表
用tomcat5.0.28+jdk1.4.2+oracle10g开发的一套系统,在客户那儿已经用了好几个月了,最近出现在锁表的问题,同样的程序,部署到客户那运行同一个模块出现锁表,但是部署在笔记本上就没有问题,唯一不确定的地方就是tomcat的配置。
锁表是出现在一个事务里面,把在事务里面的几条SQL放到PL/SQL执行就没问题,在程序里造成锁表的语句是一个insert 语句,这个表的列非常多,大约有100多列吧

请问锁表会和tomcat的配置有关吗?如果没有关系,那么造成这种现象的原因是什么呢?

------解决方案--------------------
我对oracle没什么研究,也只能泛泛之谈,oracle的安全性非常高,所以如果sql语句有一点不严谨 就可能发生错误,锁表的情况跟tomcat不会有什么关系的 ,造成这种现象的原因很多,可能是程序里的问题,也可能是部署在服务器里的oracle的问题
------解决方案--------------------
應該和tomcat的連接池配置有點關系,之前用postgres也有過類似的情況,原因可能是鏈接超時造成的,當時與服務器有關系,開了連接然后批處理,結果處理超時可能會有累死情況,你可以發電郵找甲骨文問問
------解决方案--------------------
和tomcat有关系,如果链接超时或未关闭,会造成锁表
------解决方案--------------------
连接超时会造成锁表这是肯定的。
用了好几个月了才出现这个锁表的问题吗?
事务是用在了数据库还是程序?
有没有考虑并发的问题?
我能想到的就这些了。