论坛首页 Java企业应用论坛

关键字:查询,事务,粒度

浏览 23119 次
该帖已经被评为良好帖
作者 正文
   发表时间:2008-09-24  
pangkc 写道
应该是粗粒度的事务,和 大量的并发,才会造成connection耗尽的情况
如果一个事务,耗时时间几乎不计,那再多的并发也不会造成connection耗尽,不考虑tomcat之类容器的原因,
再粗粒度的事务,没有并发,也不会造成connection耗尽



你的理解是正确的

不过是否需要加锁看业务来决定,其实在本文章的这个场景中,即使在方法上加锁也没有多大影响,因为资源竞争的情况很少.

如果是资源竞争很厉害我们还可以使用双重检查

-----------------------------------------------------------------------------------------

cuiyi.crazy 写道
而你在开贴的结论中提到
ahuaxuan 写道


而这个方法只有o1 == null的时候才会被调用,绝大多数情况下它是不会被调用的.这样既一定程度上保证了事务又提高的程序的速度.

实际上所说的加锁,也是保证不多次读取数据库,而直接从缓存获得的一种保障;
这个connectoin耗尽的根本原因在cache中的命中率不高而导致

不好意思,到现在才仔细看你的回帖,

不过你还是错的,即使缓存命中率100%,还是需要用到connection,所以资源还是会耗尽,你再仔细想想吧.
0 请登录后投票
   发表时间:2008-09-27  
在spring的事务说明中,PROPAGATION_SUPPORTS是当前线程处于事务中则使用事务,否则不使用。不知道这个和楼主所说的线程、事务是否有关系。
0 请登录后投票
   发表时间:2008-10-07  
ahuaxuan 写道
[size=medium]/**


就是这段代码,放到tomcat中,我的同事william测出来的结果是,单线程请求(tomcat的thread pool中在同一时间只有一个处理请求的线程被调用):ab  -c 1 –n 1000 http://xxxx.xxx.xxx/xxx
结果是每秒中只能处理20个请求,  我的天啊, 20个,改多线程呢,: ab  -c 100 –n 1000 http://xxxx.xxx.xxx/xxx, 一百个线程请求1000次,晕倒,还是每秒只能处理20多个请求


用ab这个命令进行的请求不会去真的执行代码吗?为什么我每次执行的print的信息都不显示出来呢?还有debug也没什么反应呢?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics