长时间不访问数据库,以后就再也连不上了! 分不够在加,我分多多!

qljsd 2003-09-12 10:35:30
我在solaris的系统上装的apache + resin + mysql,对数据库的连接是使用的resin的连接池,但是当我一段较长的时间不访问数据库,比如一个我下午下班,到早上上班。当我通过访问服务器的web服务时,如果该web服务有对数据库的访问,就会报错,连不上数据库。出错信息是
java.sql.SQLException: Communication link failure:java.net.SocketException
at org.gjt.mm.mysql.MysqlIO.sendCommand(MysqlIO.java)
at org.gjt.mm.mysql.MysqlIO.sqlQueryDirect(MysqlIO.java)
at org.gjt.mm.mysql.Connection.execSQL(Connection.java)
at org.gjt.mm.mysql.PreparedStatement.executeQuery(PreparedStatement.java)
为什么呀?
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunthing 2003-09-18
  • 打赏
  • 举报
回复
我用postgresql 时也出现此类情况,必须重启服务,才能连上
我也没有解决,
我想应该在连接池上花工夫,连接池发现在一定时间内没有数据连接请求时,自动把所有连接都释放掉,
具体怎样,我也没做研究,也许是在等结果!

希望此问题能早点解决!
alamb 2003-09-14
  • 打赏
  • 举报
回复
同意Hm1ly()
shuixin13 2003-09-13
  • 打赏
  • 举报
回复
Hm1ly()
说的正确
qljsd 2003-09-12
  • 打赏
  • 举报
回复
怎么没人知道吗?我晕!!!
weizhihui1213 2003-09-12
  • 打赏
  • 举报
回复
不懂,帮你顶!
Hm1ly 2003-09-12
  • 打赏
  • 举报
回复
Mysql一般在默认请问下,8个小时后,如果没有操作的连接会自动断开,所以,你要想长时间使用一个连接,你必须在未操作8小时之类,使用mysql_ping(conn)命令进行ping一下,当然你也可以用指定命令操作一下。mysql_ping()返回0表示连接有效,返回1表示连接无效。
dick2514 2003-09-12
  • 打赏
  • 举报
回复
这个问题我好象也遇到过,不过到现在也没有解决,不好意思,不能帮助你。
希望能快点解决,我也想知道答案。
lxf_1976 2003-09-12
  • 打赏
  • 举报
回复
一个连接如果长时间空闲,是会自动断开的!

你的web服务是不是起来后创建一个连接,在运行过程中每次访问数据库就用这个连接?如果这样可以试试定时去访问一下数据库,最简单的就是定时发送查询语句“SELECT 1”

56,675

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧