论坛首页 入门技术论坛

ibatis连接Mysql数据库

浏览 9590 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-06-08  

我在使用ibatis连接mysql数据库时,出现如下错误,在长时间未操作系统后,首次(操作)登录出现的错误。

这种问题好像是使用陈旧的数据库连接池连接问题,mysql会在长时间为使用连接时关闭数据库连接,而我又使用了此已经关闭了的连接,所以出现如下错误,这只是我自己的认识,不知道如何解决。希望的到帮助,谢谢。

我的数据库连接配置文件如下

<!---->

java 代码
  1. <!---->"1.0" encoding="utf-8" ?>   
  2. <!---->"-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd">   
  3. <sqlmapconfig></sqlmapconfig>  
  4.   "false" enhancementEnabled="true"  
  5.     lazyLoadingEnabled="true" maxRequests="32"  
  6.     maxSessions="10" maxTransactions="5"  
  7.     useStatementNamespaces="false"  
  8.   />   
  9.     "JDBC">   
  10.     "SIMPLE">   
  11.     "JDBC.Driver" value="com.mysql.jdbc.Driver"/>   
  12.     "JDBC.ConnectionURL" value="jdbc:mysql://*************?characterEncoding=GBK"/>   
  13.     "JDBC.Username" value="****"/>   
  14.     "JDBC.Password" value="*****"/>   
  15.     <!---->   
  16.     "Pool.MaximumActiveConnections" value="10"/>   
  17.     "Pool.MaximumIdleConnections" value="5"/>   
  18.     "Pool.MaximumCheckoutTime" value="120000"/>   
  19.     "Pool.TimeToWait" value="10000"/>   
  20.     "Pool.PingQuery" value="select * from *****"/>   
  21.     "Pool.PingEnabled" value="true"/>   
  22.     "Pool.PingConnectionsOlderThan" value="0"/>   
  23.     "Pool.PingConnectionsNotUsedFor" value="0"/>   
  24.        
  25.        
  26.   <!---->   
  27.   "**********************" />   
  28.   
  29.   

错误输出如下:

 

  1. HTTP Status 500 -    
  2.   
  3. --------------------------------------------------------------------------------   
  4.   
  5. type Exception report   
  6.   
  7. message    
  8.   
  9. description The server encountered an internal error () that prevented it from fulfilling this request.   
  10.   
  11. exception    
  12.   
  13. com.ibatis.dao.client.DaoException: Failed to queryForList - id [getAdminByName], parameterObject [admin].  Cause: com.ibatis.common.jdbc.exception.NestedSQLException:      
  14. --- The error occurred in com/vodone/cpms/sql/Admin.xml.     
  15. --- The error occurred while executing query.     
  16. --- Check the                   select * from admin where user_name = ?                   .     
  17. --- Check the SQL Statement (preparation failed).     
  18. --- Cause: java.sql.SQLException: No operations allowed after connection closed.   
  19.   
  20. Connection was closed due to the following exception:   
  21.   
  22. ** BEGIN NESTED EXCEPTION **    
  23.   
  24. java.sql.SQLException   
  25. MESSAGE: Communication link failure: java.io.EOFException, underlying cause: null  
  26.   
  27. ** BEGIN NESTED EXCEPTION **    
  28.   
  29. java.io.EOFException   
  30.   
  31. STACKTRACE:   
  32.   
  33. java.io.EOFException   
  34.     at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1319)   
  35.     at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463)   
  36.     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854)   
  37.     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109)   
  38.     at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203)   
  39.     at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1164)   
  40.     at com.mysql.jdbc.Connection.execSQL(Connection.java:2087)   
  41.     at com.mysql.jdbc.Connection.execSQL(Connection.java:2049)   
  42.     at com.mysql.jdbc.Connection.execSQL(Connection.java:2030)   
  43.     at com.mysql.jdbc.Connection.rollbackNoChecks(Connection.java:3004)   
  44.     at com.mysql.jdbc.Connection.rollback(Connection.java:1458)   
  45.     at com.ibatis.common.jdbc.SimpleDataSource.popConnection(SimpleDataSource.java:621)   
  46.     at com.ibatis.common.jdbc.SimpleDataSource.getConnection(SimpleDataSource.java:215)   
  47.     at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.init(JdbcTransaction.java:48)   
  48.     at com.ibatis.sqlmap.engine.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:89)   
  49.     at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123)   
  50.     at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)   
  51.     at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)   
  52.     at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:101)   
  53.     at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:78)   
  54.     at com.ibatis.dao.client.template.SqlMapDaoTemplate.queryForList(SqlMapDaoTemplate.java:203)   
  55.     at com.vodone.cpms.dao.impl.AdminDaoImpl.getAdminByUserName(AdminDaoImpl.java:16)   
  56.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)   
  57.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)   
  58.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)   
  59.     at java.lang.reflect.Method.invoke(Method.java:589)   
  60.     at com.ibatis.dao.engine.impl.DaoProxy.invoke(DaoProxy.java:72)   
  61.     at $Proxy8.getAdminByUserName(Unknown Source)   
  62.     at com.vodone.cpms.service.AdminService.getAdmin(AdminService.java:27)   
  63.     at com.vodone.cpms.servlet.ControlCenterServlet.login(ControlCenterServlet.java:559)   
  64.     at com.vodone.cpms.servlet.ControlCenterServlet.doGet(ControlCenterServlet.java:47)   
  65.     at com.vodone.cpms.servlet.ControlCenterServlet.doPost(ControlCenterServlet.java:612)   
  66.     at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)   
  67.     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)   
  68.     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)   
  69.     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)   
  70.     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)   
  71.     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)   
  72.     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)   
  73.     at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)   
  74.     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)   
  75.     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)   
  76.     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)   
  77.     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)   
  78.     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)   
  79.     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)   
  80.     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)   
  81.     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)   
  82.     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)   
  83.     at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)   
  84.     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)   
  85.     at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)   
  86.     at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)   
  87.     at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)   
  88.     at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)   
  89.     at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)   
  90.     at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)   
  91.     at java.lang.Thread.run(Thread.java:626)   
  92.   
  93.   
  94. ** END NESTED EXCEPTION **  
java 代码

 

   发表时间:2007-06-20  
很郁闷,此问题困扰我很久了不知道怎么解决。
0 请登录后投票
   发表时间:2007-08-01  
我记得好像mysql上面有个配置。如果多长时间没有访问数据库。数据库就会主动把连接断掉。我记得好像当时我把那个设置改长了就没有出现过那个问题了。mysql默认的是8个小时,我们那个时候做的政府网站,晚上没有人用,所以连接就自动断了。
0 请登录后投票
   发表时间:2007-08-02  
ibatis + win mysql 5.0 ,没遇到这个问题。

挂几天不用也不会自动断
0 请登录后投票
   发表时间:2007-08-02  
防火墙?
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics