【问题标题】:Java web application running on Tomcat unable to execute SQL queries with DB Connection pooling在 Tomcat 上运行的 Java Web 应用程序无法使用数据库连接池执行 SQL 查询
【发布时间】:2013-04-25 21:08:16
【问题描述】:

我在 Stack Overflow 上遇到过很多次类似的问题,但是,我一直没能正确回答。

我正在尝试在 Tomcat 6 + MySQL 中使用数据库连接池(在 AWS RDS 上) 这些是我配置的参数。

(我也在关闭我的 Java 代码的连接)

<Resource name="jdbc/awsDB" auth="Container" type="javax.sql.DataSource"
                factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
                initialSize="10"
                testWhileIdle="true"
                maxActive="30"
                maxAge="3600"
            maxIdle="5"
                maxWait="3000"
                removeAbandoned="true"
                logAbandoned="false"
                validationQuery="SELECT 1"
                removeAbandonedTimeout="60"
                timeBetweenEvictionRunsMillis="15000"
                username="sbose78" password="XXXXX"
                driverClassName="com.mysql.jdbc.Driver"  
                url="jdbc:mysql://xxxxrds.amazonaws.com:3306/health?autoReconnect=true" />   

该应用程序在最初的几个数据库查询中运行良好,之后数据库连接无限期挂起。

从连接日志中我注意到连接池运行良好,但是,即使有 10 个以上处于 SLEEP 状态的连接,新的数据库查询也需要无限期的时间来执行。

在大多数情况下,我最终会重新启动服务器。

我在做什么配置错误?

提前非常感谢!

【问题讨论】:

    标签: mysql jakarta-ee tomcat6 connection-pooling


    【解决方案1】:

    检查您的查询是否使用了 where 子句中的所有索引列。如果您确定连接池,那么很可能问题出在查询本身。

    【讨论】:

      猜你喜欢
      • 2023-03-27
      • 2017-02-24
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 1970-01-01
      相关资源
      最近更新 更多