应用访问Mysql遇到的连接问题
2010-04-20 17:14
351 查看
最近在做一个小项目,开发环境:数据库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包。
记录在此,以备后用。
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包。
记录在此,以备后用。
相关文章推荐
- 阿里云服务器linux环境,从启动tomcat服务器外网访问--->绑定域名--->Navicat远程连接mysql--->阿里云服务器部署项目过程中,一定会遇到的五大问题;
- java连接Mysql遇到新问题!!!如下异常怎么解决?
- log4j与MySQL长时间连接问题,自己也遇到这个问题了,转载也算记录下吧
- python3 连接 mysql 遇到乱码问题解决方案
- Ubuntu mysql本地和mysql客户端不能访问和2003不能连接到服务器问题解决方法
- C++连接mysql及遇到的相关问题
- C++与mysql连接遇到的问题汇总
- debian mysql安装以及navicat连接遇到的一个问题。
- 使用BDC连接MySql可能遇到的问题
- AGW(lvs)长连接后端应用重启遇到连接中断问题
- Mac中遇到的Eclipse连接不上mySql的问题
- 使用heroku开发应用时连接数据库遇到的问题及解决方案
- Navicat连接mysql遇到的问题,网上整理的.
- gcc编译c语言(访问数据库mysql)时可能遇到的问题
- php的mysql_connect连接遇到的2006问题
- mysql 短连接压测遇到的问题及查找解决思路[终于找到原因了]
- VC连接mysql遇到的问题
- mysql5.6连接遇到的问题
- 转帖:使用BDC连接MySql可能遇到的问题
- 连接mysql连接不上遇到的问题