数据库轮询的问题

ez7268 2010-03-14 09:00:48
一个小程序,实现mysql数据库轮询。流程为

新建一个连接→判断该连接是否断开,如果断开重新建立→使用该连接查询xx表(每次只查询一行记录,循环等待时间为1秒)

程序在成功从早上9点运行到晚上2点左右报错...

堆栈信息:

com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.io.EOFException

STACKTRACE:

java.io.EOFException
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1934)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2380)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3026)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1137)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1231)
at com.word.DBC.DB_Control.getMsg(DB_Control.java:62)
at com.word.DBC.DB_Control.main(DB_Control.java:185)


** END NESTED EXCEPTION **



Last packet sent to the server was 16 ms ago.
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2592)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1600)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3026)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1137)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1231)
at com.word.DBC.DB_Control.getMsg(DB_Control.java:62)
at com.word.DBC.DB_Control.main(DB_Control.java:185)
conn is closed,重建连接
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception:

** BEGIN NESTED EXCEPTION **

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection timed out: connect

STACKTRACE:

java.net.SocketException: java.net.ConnectException: Connection timed out: 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 com.word.uitl.DB_Conn.<init>(DB_Conn.java:21)
at com.word.DBC.DB_Control.getMsg(DB_Control.java:53)
at com.word.DBC.DB_Control.main(DB_Control.java:185)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2643)
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 com.word.uitl.DB_Conn.<init>(DB_Conn.java:21)
at com.word.DBC.DB_Control.getMsg(DB_Control.java:53)
at com.word.DBC.DB_Control.main(DB_Control.java:185)
Exception in thread "main" java.lang.NullPointerException
at com.word.DBC.DB_Control.getMsg(DB_Control.java:85)
at com.word.DBC.DB_Control.main(DB_Control.java:185)
...全文
559 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjun332614 2012-07-20
  • 打赏
  • 举报
回复
本人也在研究这个问题,是否能提供一下源码?657896504@qq.com谢谢啦。。
leavin521 2010-03-15
  • 打赏
  • 举报
回复
DB_Control 你仔细检查检查。
怎么突然间就不能加载驱动了
ez7268 2010-03-14
  • 打赏
  • 举报
回复
额...一个小程序用啥spring....
pipi521520 2010-03-14
  • 打赏
  • 举报
回复
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>${db.driver}</value>
</property>
<property name="url">
<value>${db.url}</value>
</property>
<property name="username">
<value>${db.username}</value>
</property>
<property name="password">
<value>${db.password}</value>
</property>
<property name="timeBetweenEvictionRunsMillis">
<value>2000000</value>
</property>
<property name="minEvictableIdleTimeMillis">
<value>1000000</value>
</property>
</bean>

如果是spring加上面两句就行
qiule520 2010-03-14
  • 打赏
  • 举报
回复
学习.....

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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