Spring的数据库配置段。。 <bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName"
value="org.gjt.mm.mysql.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8">
</property>
<property name="username" value="root"></property>
<property name="password" value="mysqladmin"></property>
</bean>我以为是连接次数过多又没关闭数据库连接照成的。。
可是我在spring的datasource中已经设置 destroy-method="close"
又在查询查询完后关闭session!!!
 为什么还是这样啊???
在tomcat的后台中显示,sessions只有2个。

解决方案 »

  1.   

    还在访问那个页面,半天也进不去,结果重载了,马上就提示以下错误~~~~~2008-5-17 23:33:55 org.apache.catalina.core.ApplicationContext log
    信息: HTMLManager: restart: Reloading web application at '/Blog'
    2008-5-17 23:33:55 org.apache.catalina.core.StandardContext reload
    信息: Reloading this Context has started
    2008-5-17 23:33:55 org.apache.catalina.core.StandardWrapper unload
    信息: Waiting for 3 instance(s) to be deallocated
    2008-5-17 23:33:56 org.apache.catalina.core.StandardWrapper unload
    信息: Waiting for 3 instance(s) to be deallocated
    2008-5-17 23:33:57 org.apache.catalina.core.StandardWrapper unload
    信息: Waiting for 3 instance(s) to be deallocated
    java.lang.NullPointerException
    at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:788)
    at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:96)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:105)
    at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
    at org.hibernate.loader.Loader.doQuery(Loader.java:661)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.doList(Loader.java:2145)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
    at org.hibernate.loader.Loader.list(Loader.java:2024)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    at org.aorons.blog.dao.impl.IUserDAOImpl.QueryAll(IUserDAOImpl.java:21)
    at org.aorons.blog.struts.action.UserAction.memberlist(UserAction.java:44)
    ...............
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.aorons.blog.Filter.EncodingFilter.doFilter(EncodingFilter.java:22)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Unknown Source)
    log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).
    log4j:WARN Please initialize the log4j system properly.
      

  2.   

    ava.lang.NullPointerException ,跟踪下代码把
      

  3.   

    <propert[code=XML]y name="maxActive">
    <value>5</value>
    </property>
    <property name="maxWait">
    <value>1200</value>
    </property>
    <property name="maxIdle">
    <value>5</value>
    </property>
    <property name="validationQuery">
    <value>select 1 from dual</value>
    </property>[/code]
    把这些加上试试
      

  4.   

    <property name="maxActive">
    <value>5</value>
    </property>
    <property name="maxWait">
    <value>1200</value>
    </property>
    <property name="maxIdle">
    <value>5</value>
    </property>
    <property name="validationQuery">
    <value>select 1 from dual</value>
    </property>
      

  5.   

    db connection没 释放
    检查<property name="transactionAttributes">
         <props>
          <prop key="...">PROPAGATION_REQUIRED</prop>
         /props>
    </property>
    你的方法是否在这里包含了
      

  6.   

    朋友,按照你的该完后,刷新8次,提示这样的错误了!!
    org.hibernate.exception.GenericJDBCException: Cannot open connection
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
      

  7.   

    重复问题,看另一个的回复吧。1 你的连接池maxActive 太小了
    2 你的程序没有释放连接,只顾着获取了