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个。
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个。
信息: 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.
<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]
把这些加上试试
<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>
检查<property name="transactionAttributes">
<props>
<prop key="...">PROPAGATION_REQUIRED</prop>
/props>
</property>
你的方法是否在这里包含了
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)
2 你的程序没有释放连接,只顾着获取了