这算不算是struts的一个bug呢?
hmxdf 2004-08-04 07:05:42 对struts做压力测试的时候发现这样一个问题:
我的Action里面明明写清楚了取得数据库连接,然后调用之后在finally中间释放连接,但发现weblogic总有未被释放的连接。
仔细研究了一下,发现对于每个Action类struts每次调用的时候并不是直接创建的,而是检查内存中是否存在该类以有的实例,如果有,就直接取该实例,否则创建实例,并放入内存。这样做无非是希望提高效率。
但并发访问的时候,实际上是多个线程公用同一个实例,这难道不会有问题吗?
同一个实例的成员变量,例如connection也被多个线程访问,所以出现上面connection未被关闭或者关闭出错的情况。在较少的并发量没什么问题,好像并发量一大,问题就出来了。
不知道是我对struts了解的不够透彻,还是确实struts存在这个问题,还请各位多多指教。