博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 集成hibernate时配置连接释放模式
阅读量:6229 次
发布时间:2019-06-21

本文共 1210 字,大约阅读时间需要 4 分钟。

http://zmfkplj.iteye.com/blog/220822
程序出现一个奇怪的现象,用Quartz作业调度启动任务,运行一段时间后,任务会卡在一个查询接口处,久久不能运行完毕。
我本能的发现是不是数据库连接池数量不够?
于是我加带了连接池的大小。但是,问题依然出现。
这时,我就只能使用debug+log来调试了。调试后发现,当发生查询接口执行卡住现象时,程序连接池的确是不够用了,但是其他的任务有的已提前运行完了,有始有终,当前面的任务运行完,它所占用的连接应该会释放啊,这样连接不会存在不够用啊。恍然大悟,就是连接释放有问题。现在数据库连接是交给Hibernate管理的,之前Hibernate环境是另外开发人员配置的,没出现问题之前,没多关注。现在没办法了,去看一下配置。
 
看完spring配置后,果然有问题。现在配置的连接释放模式是on_close,把它设置成auto后就好了。

       
<
bean
             
class
=
"org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
             
id
= 
"localhost_oracle"
>
             
<
property 
name
=
"dataSource" 
ref
=
"localhost_oracleDS" 
/>
             
<
property 
name
=
"persistenceUnitName" 
value
=
"localhost_oracle" 
/>
             
<
property 
name
=
"jpaVendorAdapter" 
ref
=
"localhost_oracleJPAVendorAdapter" 
/>
             
<
property 
name
=
"jpaPropertyMap" 
>
                   
<
map
>
                         
<
entry 
key
=
"hibernate.transaction.manager_lookup_class"
                               
value
=
"com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup" 
/>
<!--                    <entry key="hibernate.connection.release_mode" value="on_close" />-->
                         
<
entry 
key
=
"hibernate.connection.release_mode" 
value
=
"auto" 
/>
                   
</
map
>
             
</
property
>
       
</
bean
>

 
我觉得on_close的意思就是等当前使用连接的线程显示的关闭时或运行完毕后,线程已消亡,连接就会被释放。
 
连接释放配置:
<property name="hibernate.connection.release_mode">auto</property>
 
 
更多文章:

转载地址:http://wntna.baihongyu.com/

你可能感兴趣的文章
ios31--NSThread
查看>>
设计模式总结篇系列:桥接模式(Bridge)
查看>>
ubuntu VNC连接树莓派
查看>>
[nodemon] Internal watch failed: watch ENOSPC错误解决办法
查看>>
全球首发----Tech·Ed 2006中国 实况报道。全程跟踪。(四)
查看>>
向C#的选项卡中添加自定义窗体
查看>>
WPF客户端读取高清图片很卡,缩略图解决方案
查看>>
ubuntu安装和配置SVN【转】
查看>>
通过串口连接控制树莓派
查看>>
线程池系列三:ThreadPoolExecutor讲解
查看>>
wp7 XAML基础
查看>>
机器这次击败人之后,争论一直没平息 | SQuAD风云
查看>>
Oracle中shrink space命令详解
查看>>
验证码 生成变形的文字
查看>>
用cflow工具生成代码函数调用关系【转】
查看>>
ASP.NET MVC5+EF6+EasyUI 后台管理系统(75)-微信公众平台开发-用户管理
查看>>
android用户界面之菜单(Menu)教程实例汇总
查看>>
单链表
查看>>
linux下的僵尸进程处理SIGCHLD信号【转】
查看>>
c#中volatile关键字的作用
查看>>