hibernate 相关应用死锁原因
在同一个事物中同时使用jdbc连接和hibernate相关数据持久化方法,是导致死锁发生的主要原因之一。如hibernate中某个表<many-to-one>标签配置了cascade=all 属性,当这个表执行完select以后,在同一个事物中,又通过jdbc完成相关子表的删除,此时就会就先死锁。[@more@]
java多线程连接oracle连接不释放的问题
oracle9.2.0.7 spring hibernate 环境。遇到java多线程模块连接数据库,产生连接占满的问题,查看数据库中,当前session正在执行的sql是,ALTER SESSION SET TIME_ZONE='+8:00' NLS_LANGUAGE='AMERICAN' NLS_TERRITORY='AMERICA',即多为连接建立后并未执行sql的session。由于采用的是hibernate spring架构,所以连接未关闭的问题,可以不考虑。最后结论如下:1.那些执行sql的getSession()方法依然要注意自己关闭连接,而且多线程环境下,关闭连接要先判断session是否为null,防止出现多次关闭的Exception。2.其次出现多个ALTER SESSION S