我通过JDBC驱动程序和Tomcat配置连接我的Java应用程序。我使用this类来定义我的配置。但有时,我有以下例外情况:
com.mysql.jdbc.exceptions.MySQLTimeoutException
:由于超时或客户请求而取消声明java.sql.SQLException
:查询执行中断java.sql.BatchUpdateException
:由于超时或客户请求而取消声明但是数据库负载不大,所以我认为问题出在我的配置上。以下是我的一些配置:
这些适用于某些负载较重的系统。所以我需要观察我的游泳池大小是否足够,以及其他可能的连接数量。是否有任何监控连接池内部的好方法?
答案 0 :(得分:1)
对于超时异常,请考虑以下伪代码:
if(!connection.isValid())
connection = getNewConnection();
resultSet rs = connection.execute(qry);
在执行查询之前,基本上检查您的连接是否已超时。
如果您的查询被中断,除了回滚事务并重试之外,您可以做的事情并不多。
答案 1 :(得分:0)
启用JMX,tomcat将使用它的mbean服务器注册您的数据源。然后,您可以使用jconsole查看连接池详细信息。