连接数据库MySql, 经常出现以下错误, 但网页一般刷新几次后,又连接上数据库,可正常显示了.
以前没有出现过这种情况, 我在自己的电脑上调试时, 也没出现. 我的数据库连接配置文件是:
WEB-INF/classes/hibernate.cfg.xml, c3p0的连接池, <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory name="kh_session">
         <!-- mysql connection -->
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
        <!--  jdbc:mysql://localhost/kh -->
        <property name="hibernate.connection.url">
            jdbc:mysql://www.070707zx.com/mydb 
        </property>  
        <property name="hibernate.connection.username">myname</property>
        <property name="hibernate.connection.password">mypassword</property>        
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
         
        <property name="show_sql">false</property>
        
        
         <!-- C3P0 Connection Pool -->  
         <property name="hibernate.connection.provider_class">
             org.hibernate.connection.C3P0ConnectionProvider
         </property>
        <property name="hibernate.c3p0.max_size">50</property>
        <property name="hibernate.c3p0.min_size">2</property>
        <property name="hibernate.c3p0.timeout">5000</property>
        <property name="hibernate.c3p0.max_statements">100</property>
        <property name="hibernate.c3p0.idle_test_period">3000</property>
        <property name="hibernate.c3p0.acquire_increment">2</property>
        <property name="hibernate.c3p0.maxIdleTime">1800</property >
        <property name="hibernate.c3p0.validate">true</property>
        <property name="hibernate.c3p0.preferredTestQuery">SELECT id FROM test WHERE id=1</property> 
       
        
        <mapping resource="kh3.hbm.xml" />
    </session-factory>
</hibernate-configuration>
-----------------------------------------------------------------------------下面是错误信息
--------------------------------------------------------------------------------
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage descript_ion The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Cannot open connection
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.util.UrlFilter.doFilter(UrlFilter.java:64)
com.util.EncodingFilter.doFilter(EncodingFilter.java:114)
root cause org.hibernate.exception.JDBCConnectionException: Cannot open connection
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
org.hibernate.loader.Loader.doQuery(Loader.java:673)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.doList(Loader.java:2220)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
org.hibernate.loader.Loader.list(Loader.java:2099)
org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
com.util.DBHelper.getQueryList(DBHelper.java:34)
com.mykh.YmcsHelper.getYmcs(YmcsHelper.java:29)
org.apache.jsp.index_jsp._jspService(index_jsp.java:89)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.util.UrlFilter.doFilter(UrlFilter.java:64)
com.util.EncodingFilter.doFilter(EncodingFilter.java:114)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.----------------------------------------------------------------------
请大家帮我看看

解决方案 »

  1.   

    确定jdbc:mysql://www.070707zx.com/mydb这样可以访问吗?有没有这个权限呢?
      

  2.   


    好像MySql的URL不是这样子写的 Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
    String url ="jdbc: mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
    //testDB为你的数据库名 
    Connection conn= DriverManager.getConnection(url); www.070707zx.com换成IP试试。mydb是你的数据库名称吗??
      

  3.   

    我用的驱动版本是mysql-connector-java-5.0.7, 应该是最新的了
      

  4.   

    一般是jdbc:mysql://localhost:3306/mydb
    localhost就是你自己电脑的意思
    www.070707zx.com是个什么网站吗?
      

  5.   

    jdbc:mysql://www.070707zx.com/mydb
    看你的这个写法,好象你的数据库并不是本地的。但网页一般刷新几次后,又连接上数据库,可正常显示了
    综合以上两点,我觉得你这个可能是连接的网络数据库。很有可能跟你WEB应用服务器和数据库服务器间的连接有关系。如果这种情况只是在hibernate被初次调用的时候才出现的话,也没什么大惊小怪的。那是因为hibernate还在连接数据库,有个时间过程,连接网络数据库是有这个问题。连接本地数据库或局域网数据库会好一些。
      

  6.   

    jdbc:mysql://www.070707zx.com/mydb
    看你的这个写法,好象你的数据库并不是本地的。但网页一般刷新几次后,又连接上数据库,可正常显示了
    综合以上两点,我觉得你这个可能是连接的网络数据库。很有可能跟你WEB应用服务器和数据库服务器间的连接有关系。如果这种情况只是在hibernate被初次调用的时候才出现的话,也没什么大惊小怪的。那是因为hibernate还在连接数据库,有个时间过程,连接网络数据库是有这个问题。连接本地数据库或局域网数据库会好一些。
      

  7.   

    jdbc:mysql://www.070707zx.com/mydb
    看你的这个写法,好象你的数据库并不是本地的。但网页一般刷新几次后,又连接上数据库,可正常显示了
    综合以上两点,我觉得你这个可能是连接的网络数据库。很有可能跟你WEB应用服务器和数据库服务器间的连接有关系。如果这种情况只是在hibernate被初次调用的时候才出现的话,也没什么大惊小怪的。那是因为hibernate还在连接数据库,有个时间过程,连接网络数据库是有这个问题。连接本地数据库或局域网数据库会好一些。
      

  8.   

    那以前我上传到web服务器上后没有这个问题, 而现在却有.
     即使连接上以后,在使用中还是偶尔有上面的错误提示.
    后来我又使用了proxool连接池, 但还是有上面的错误提示, proxool连接配置如下:
    <?xml version="1.0" encoding="UTF-8" ?><!-- the proxool configuration can be embedded within your own application's.
       Anything outside the "proxool" tag is ignored. --><something-else-entirely>
       <proxool>
          <alias>myPool</alias>
          <driver-url>
              jdbc:mysql://www.070707zx.com/mydb
          </driver-url>
          <driver-class>
              com.mysql.jdbc.Driver
          </driver-class>      <driver-properties>
              <property name="user" value="myusername"/>
              <property name="password" value="mypassword"/>
          </driver-properties>      <house-keeping-sleep-time>90000</house-keeping-sleep-time>
          <maximum-new-connections>20</maximum-new-connections>
          <prototype-count>5</prototype-count>
          <maximum-connection-count>100</maximum-connection-count>
          <minimum-connection-count>5</minimum-connection-count>
          <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
       </proxool>
    </something-else-entirely>这是照着网上的文章直接写的.还是有错误.请大家快救我啊!
      

  9.   

    web server 是:Tomcat5.0.28
    数据库是 mysql 5.0 难到大家就没有见过这种情况吗.
      

  10.   

    我用的驱动版本是mysql-connector-java-5.0.7, 应该是最新的了
    ===============================
     那你这里<driver-class> 
              com.mysql.jdbc.Driver 
           </driver-class> 
    也要换下,org.gjt.mm.mysql.Driver,试试.
      

  11.   

    org.gjt.mm.mysql.Driver 试过不行,大侠们就不能帮帮忙吗?对这个问题,我都要气疯了!!!
      

  12.   

    我也遇到了同样的问题!本地和服务器都是这样,总是报无连接或session is closed!再刷新几次就好了,我觉得如果是配置文件有问题那应该一次都不成功才对!有成功的情况,而且有时报错应该是连接池的问题吧,到现在我的问题也没解决,困扰我一个多月了!一直在不停的找解决方法。proxool等第三方连接池也都用过了,仍然没有解决。希望高人看到这帖子能给个解决方案啊!陪楼主一起等。
      

  13.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【wang_j_p】截止到2008-06-24 14:47:09的历史汇总数据(不包括此帖):
    发帖数:1                  发帖分:20                 
    结贴数:1                  结贴分:20                 
    未结数:0                  未结分:0                  
    结贴率:100.00%            结分率:100.00%            
    敬礼!
      

  14.   

    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.看看还有什么错误信息!
    比如说root cause等等!
      

  15.   

    org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Cannot open connection 
        org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:599)
        org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
        org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
        org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        $Proxy0.findAllS(Unknown Source)
        cn.com.action.StudentAction.findAllS(StudentAction.java:131)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        java.lang.reflect.Method.invoke(Unknown Source)
        com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
        com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
        com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
        org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
        org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
        org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
        org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
        org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        java.lang.Thread.run(Unknown Source)
        
    org.hibernate.exception.JDBCConnectionException: Cannot open connection 
        org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)
        org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
        org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
        org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
        org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
        org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
        org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
        org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
        org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:558)
        org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:374)
        org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
        org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
        org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        $Proxy0.findAllS(Unknown Source)
        cn.com.action.StudentAction.findAllS(StudentAction.java:131)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)