我们在我们的struts web应用程序中发现了一些奇怪的东西,该应用程序托管在sun app server enterprise edition 8.1上。
即使用户活动相对较少,用于监控JDBC资源的NumConnUsed也会在连接上保持100个。
我尝试做一些研究,发现以下链接 http://j2ee-performance.blogspot.com/ http://www.ibm.com/developerworks/websphere/library/techarticles/0506_johnsen/0506_johnsen.html
“当应用程序关闭可共享连接时,连接不会真正关闭,也不会返回到空闲池。而是保留在共享连接池中,准备好在同一LTC内进行连接的另一个请求相同的资源。“
基于上面的评论,如果我的web.xml资源参考范围设置为可共享,当应用程序端关闭连接时,它仍然保留在共享连接池中,因此numconnused总是如此之高?
答案 0 :(得分:3)
如果我以我自己的特殊方式(;)解释链接,则共享与非共享连接基于同一页面中的不同连接。
java.sql.Connection connectionOne = DriverManager.getConnection(...);
...
java.sql.Connection connectionTwo = DriverManager.getConnection(...);
这两个看起来似乎是个体的 - 但是如果您的AS设置为可共享连接,则第二个将使用指向第一个连接的指针创建,而不是返回新连接。页面完成后,应将连接发送回池中。
AS可能会保持池中充满连接以提高性能。
这不是事实,只是我自己对链接的解释。