spring+hibernate+struts +SQL2005 数据库频繁死锁。能解决再追加100分
现在有个系统,spring+hibernate+struts +SQL2005 的数据库(开始是SQL2000)只要执行update 后 查询就死锁,数据库死了,要把tomcat停了才能继续运行。
现在发现不了原因。。。。郁闷的 看不到摸不着的。。。。
不过怀疑他的配置文件 有问题:原来工程里面是有2个配置文件的:hibernate.cfg.xml 和 hibernate1.cfg.xml (多个1)
调用的方式:
protected HibernateOperations hibernateImpl = HibernateManagerFactory
.getInstance("hibernate.cfg.xml");
或者
private static TServiceSalvedFromServicTypeDao dao;
public static TServiceSalvedFromServicTypeDao getInstance() {
if (dao == null) {
dao = new TServiceSalvedFromServicTypeDao();
dao.setProps("hibernate.cfg.xml");
}
return dao;
}
// 建立数据库连接
public void getConnect(TServiceSalvedFromServicTypeDao obj) {
try {
jdbc = new JDBCManager(obj.getProps());
conn = jdbc.getConnection();
} catch (
SQLException e) {
e.printStackTrace();
}
现在 把2个配置文件合并到个 hibernate.cfg.xml 里面 ,以前调用 hibernate1.cfg.xml的 全部replace
hibernate.cfg.xml。 结果死的更频繁。
原 配置文件内容:
<mapping class="com.dingtian.ccsa.back.salvation.minzheng.medicare.bo.TMzme" />
<mapping resource="com/dingtian/ccsa/back/salvation/stat/bo/TService.hbm.xml" />
有2中形势的配置方式。我 一直怀疑 2中配置方式放在一个工程里面可以么?而且还放一个hibernate.cfg.xml配置文件中
<mapping class="com.dingtian.ccsa.back.salvation.minzheng.medicare.bo.TMzme" />
这种配置形式就是 (直接写类里面的):
@Column(name = "salvedtime", unique = false, nullable = true, insertable = true, updatable = true, length = 50)
public String getSalvedtime() {
return salvedtime;
}
public void setSalvedtime(String salvedtime) {
this.salvedtime = salvedtime;
}
<mapping resource="com/dingtian/ccsa/back/salvation/stat/bo/TService.hbm.xml" />
这种是 (写在xml文件中的)
<id
name="registerNo"
type="java.lang.String"
column="REGISTER_NO"
unsaved-value="undefined"
>
数据库连接 是配置在tamcat 中的,在tomcat/conf文件下 server.xml文件
<Resource name = "jdbc/xwjzdb"
type = "javax.sql.DataSource"
driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
url = "jdbc:sqlserver://192.168.8.122:1433;databaseName=db0706"
username = "sa"
password = "666666"
maxWait = "4000"
maxActive = "200"
maxIdle = "30" />
那位 高人帮小弟看看 ,会是什么问题 ,或者有出现过 类似这种情况的请告诉下 ,或者就不是配置文件问题 是其他问题的?
现在 只要更新数据库 然后自己刷新页面查询就会死锁。死锁以后 必须从启动tomcat 然后数据自己会回滚
------解决方案--------------------从现象分析,是事务未提交,一直挂着
------解决方案--------------------如果配置文件配置了事务,请检查事务配置
如果配置文件未配置事务,请在数据库操作完成后提交,并释放相关资源,如果session,ResultSet等
------解决方案--------------------帮顶~!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------手动提交
代码忘了的话
上GOOGLE搜搜
------解决方案--------------------public void bulkUpdate() {
Session session=this.getHibernateTemplate().getSessionFactory().openSession();