2

我们注意到托管在 sun app server 企业版 8.1 上的 struts Web 应用程序中有一些奇怪的地方。

即使用户活动相对非常少,用于监控 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 总是这么高?

4

1 回答 1

3

如果我以自己的特殊方式 (;)) 解释链接,则共享连接与非共享连接基于同一页面中的不同连接。

java.sql.Connection connectionOne = DriverManager.getConnection(...);
...
java.sql.Connection connectionTwo = DriverManager.getConnection(...);

乍一看,这两个似乎是独立的 - 但如果您的 AS 设置为可共享连接,则将使用指向第一个连接的指针创建第二个连接,而不是返回新连接。当页面完成时,连接应该被发送回池。

AS 可能会保持池中充满连接以提高性能。

这不是事实,只是我自己对链接的解释。

于 2009-03-19T08:43:57.177 回答