如何使用与jdbc连接池相关的maxWait,removeAbandonedTimeout和suspectTimeout属性

时间:2018-06-13 06:14:47

标签: java tomcat jdbc connection-pooling

我正在使用SQL server 2012,tomcat-7来部署我的应用程序和java 1.7。

我当前的连接池配置与

类似
<Resource
    name="jdbc/devC"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="5"
    maxWait="-1"
    driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://localhost:1433;DatabaseName=DB_NAME"
    username="sa"
    password="db#123"
    removeAbandoned="true"
    removeAbandonedTimeout="300"
    logAbandoned="false"/>

在我的应用程序中有7个不同的数据库,因此上述配置也存在于7个不同的数据库中(这7个数据库存在于单个服务器计算机上)。

使用此配置,我执行80个线程,每个线程一次使用/使用一个连接。 现在我需要改进我的应用程序执行,所以我决定将线程从80增加到150或200 但是为此我需要考虑对连接池的影响,所以我需要更多地了解它。

如何使用此属性来改善我的连接池,以便通过使用更多线程和连接池来实现更快的执行

  1. removeAbandonedTimeout如何工作?因为我在数据库连接上执行一些演示以检查它的行为,但我没有得到任何东西。
  2. suspectTimeout如何运作?
  3. 我通过设置为-1禁用了maxWait,这是正确的使用方法吗?我已禁用它,因为我的应用程序有时可能会达到maxActive计数。
  4. 提前谢谢

0 个答案:

没有答案