应用访问Mysql遇到的连接问题

在开发项目中遇到MySQL频繁查询引发的异常,具体表现为javax.servlet.ServletException和Communications link failure。问题根源是连接数占用过多。通过将JDBC直接连接替换为使用连接池,删除相关jar包并确保Tomcat的lib目录包含正确jar包,成功解决了问题。
摘要由CSDN通过智能技术生成

最近在做一个小项目,开发环境:数据库mysql5.0,服务器Tomcat5.5。项目打成war部署在tomcat上之后,通过应用进行查询操作,如果操作过于频繁,后台会抛如下异常:

javax.servlet.ServletException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [08S01]; error code [0]; Communications link failure due to underlying exception:

 

** BEGIN NESTED EXCEPTION **

 

java.net.SocketException

MESSAGE: java.net.BindException: Address already in use: connect

 

STACKTRACE:

 

java.net.SocketException: java.net.BindException: Address already in use: connect

        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)

        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)

        at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)

        at com.mysql.jdbc.Connection.<init>(Connection.java:1485)

        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)

        at java.sql.DriverManager.getConnection(Unknown Source)

        at java.sql.DriverManager.getConnection(Unknown Source)

        at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291)

    at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277

。。。。。。

在网上查了很多资料,也在论坛里发帖提问,发现是连接数占用的问题。应用里连接采用的是JDBC直连,后来改成了通过缓冲池连接。

换成缓冲池连接的时候,程序打包要注意,程序lib下的naming-factory.jar,naming-factory-dbcp.jar,naming-resources.jar都要删掉,mysql的连接jar包也要删掉,之后再打包。同时还要注意,tomcat的common lib下要有mysql连接的jar包。然后再部署程序,启动,就ok了。

究其原因,是全局和局部的问题。配置缓冲池连接这种方式,需要全局(tomcat的lib下有相关的jar包);如果采用jdbc直连,就需要程序的war包里有上述那几个jar包。

记录在此,以备后用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值