0

我有一个在 Tomcat 7.0.37 上运行的 Java Web 应用程序(带有 JSP 页面的 servlet),该应用程序配置了一个 MySQL 数据库池,具有以下配置(在 context.xml 文件中设置):

<Context antiJARLocking="true" path="/">
    <Resource 
        name="jdbc/ledenplatform" 
        auth="Container"
        type="javax.sql.DataSource" 
        removeAbandonedTimeout="60"
        removeAbandoned="false" 
        logAbandoned="false"
        factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
        initialSize="20" 
        maxActive="100"
        minIdle="20" 
        maxIdle="50"
        maxWait="10000" 
        suspectTimeout="60"
        username="ledenplatform" 
        password="******************"
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://ledenplatform.blauwe-regen.be:3306/ledenplatform"
        timeBetweenEvictionRunsMillis="30000" 
        minEvictableIdleTimeMillis="60000"
        testWhileIdle="true" 
        testOnReturn="false" 
        validationQuery="SELECT 1"
        validationInterval="30000" 
        testOnBorrow="true" />
</Context>

在一些未知的时间/事件之后,池慢慢地空了,我不知道是什么事件或数据库操作导致了这种情况。

通常,我所有的 DAO 类都正确关闭连接并在使用后关闭所有准备好的语句和结果集。

我该如何调试这个问题?

编辑:

我做了一个 SHOW FULL PROCESSLIST 并得到了这个:

'168278', 'ledenplatform', 'd5152E6EC.static.telenet.be:60296', 'ledenplatform', 'Sleep', '1', '', NULL
'348864', 'ledenplatform', 'ledenplatform.xlshosting.net:51160', 'ledenplatform', 'Sleep', '52', '', NULL
'348865', 'ledenplatform', 'ledenplatform.xlshosting.net:51161', 'ledenplatform', 'Sleep', '52', '', NULL
'348866', 'ledenplatform', 'ledenplatform.xlshosting.net:51162', 'ledenplatform', 'Sleep', '52', '', NULL
'348867', 'ledenplatform', 'ledenplatform.xlshosting.net:51163', 'ledenplatform', 'Sleep', '52', '', NULL
'348868', 'ledenplatform', 'ledenplatform.xlshosting.net:51164', 'ledenplatform', 'Sleep', '52', '', NULL
'348869', 'ledenplatform', 'ledenplatform.xlshosting.net:51165', 'ledenplatform', 'Sleep', '26', '', NULL
'348870', 'ledenplatform', 'ledenplatform.xlshosting.net:51166', 'ledenplatform', 'Sleep', '26', '', NULL
'348871', 'ledenplatform', 'ledenplatform.xlshosting.net:51167', 'ledenplatform', 'Sleep', '21', '', NULL
'348883', 'ledenplatform', 'ledenplatform.xlshosting.net:51179', 'ledenplatform', 'Sleep', '21', '', NULL
'361885', 'ledenplatform', 'd5152E6EC.static.telenet.be:53691', 'ledenplatform', 'Sleep', '36', '', NULL
'377875', 'root', '94-226-251-210.access.telenet.be:54267', 'ledenplatform', 'Sleep', '39', '', NULL
'377876', 'root', '94-226-251-210.access.telenet.be:54268', 'ledenplatform', 'Query', '0', NULL, 'SHOW FULL PROCESSLIST'
4

0 回答 0