锁定老帖子 主题:关键字:查询,事务,粒度
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-24
pangkc 写道 应该是粗粒度的事务,和 大量的并发,才会造成connection耗尽的情况
如果一个事务,耗时时间几乎不计,那再多的并发也不会造成connection耗尽,不考虑tomcat之类容器的原因, 再粗粒度的事务,没有并发,也不会造成connection耗尽 ![]() 你的理解是正确的 不过是否需要加锁看业务来决定,其实在本文章的这个场景中,即使在方法上加锁也没有多大影响,因为资源竞争的情况很少. 如果是资源竞争很厉害我们还可以使用双重检查 ----------------------------------------------------------------------------------------- cuiyi.crazy 写道 而你在开贴的结论中提到
ahuaxuan 写道 而这个方法只有o1 == null的时候才会被调用,绝大多数情况下它是不会被调用的.这样既一定程度上保证了事务又提高的程序的速度. 实际上所说的加锁,也是保证不多次读取数据库,而直接从缓存获得的一种保障; 这个connectoin耗尽的根本原因在cache中的命中率不高而导致 不好意思,到现在才仔细看你的回帖, 不过你还是错的,即使缓存命中率100%,还是需要用到connection,所以资源还是会耗尽,你再仔细想想吧. |
|
返回顶楼 | |
发表时间:2008-09-27
在spring的事务说明中,PROPAGATION_SUPPORTS是当前线程处于事务中则使用事务,否则不使用。不知道这个和楼主所说的线程、事务是否有关系。
|
|
返回顶楼 | |
发表时间: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也没什么反应呢? |
|
返回顶楼 | |