Tomcat 数据库连接池在高吞吐量下缓慢

问题描述

我有用 Spring 2.X 编写的肥皂网络服务,它连接到 teradata 并将结果返回给客户端。为了连接数据,我使用 Tomcat JDBC Connection Pool 作为 DataSource

在高峰时段(上午 9 点到下午 6 点),应用程序会收到大约 6 万个事务请求。我观察到一些事务进入挂起状态并在 2-3 分钟内返回响应。我怀疑某些事务进入等待状态,一旦池中的连接可用,则完成事务。

以下是 DataSource 的配置。

    <bean id="dataSource"   class="org.apache.tomcat.jdbc.pool.DataSource"
          destroy-method="close">
        <property name="driverClassName" value="com.teradata.jdbc.teraDriver"/>
        <property name="url" >
            <util:constant static-field=" _DB_HOST"/>
        </property>
        <property name="username">
            <util:constant static-field=" DB_USER"/>
        </property>
        <property name="password">
            <util:constant static-field=" DB_PWD"/>
        </property>
        <property name="initialSize" value="1" />
        <property name="maxActive" value="50" />
        <property name="minIdle" value="0" />
        <property name="maxWait" value="-1" />
        <property name="minevictableIdleTimeMillis" value="1000" />
        <property name="timeBetweenevictionRunsMillis" value="1000" />

    </bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
        <qualifier value="txnMngr"/>
    </bean>

// using JdbcTemplate to read the data from data base.

这是我的问题:

  • 根据我为应用程序提到的负载,上述配置是否存在任何问题?
  • 有什么方法可以监控数据库连接池的使用情况?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)