Spring 已达到MaxOpenPreparedStatements限制

Spring 已达到MaxOpenPreparedStatements限制,spring,hibernate,apache-commons-dbcp,Spring,Hibernate,Apache Commons Dbcp,当调度器开始运行后启动应用程序时,我得到以下错误 原因:java.sql.SQLException:已达到MaxOpenPreparedStatements限制 下面是属性 <entry key="jdbc.preparedStatementCacheSize" value="500" /> <entry key="jdbc.initialSize" value="5" /> <entry key="jdbc.maxActive" value

当调度器开始运行后启动应用程序时,我得到以下错误

原因:java.sql.SQLException:已达到MaxOpenPreparedStatements限制

下面是属性

    <entry key="jdbc.preparedStatementCacheSize" value="500" />
    <entry key="jdbc.initialSize" value="5" />
    <entry key="jdbc.maxActive" value="100" />
    <entry key="jdbc.maxIdle" value="${jdbc.initialSize}" />
    <entry key="jdbc.minIdle" value="0" />
    <entry key="jdbc.validationQuery" value="select database()" />
    <entry key="jdbc.maxWait" value="16000"/>
bean数据源

而不是org.apache.commons.dbcp.BasicDataSource,如果我使用 org.springframework.jdbc.datasource.DriverManagerDataSource那么我不会得到这个异常


我正在使用Spring2.5。请帮助我解决此异常。

您的计划程序在做什么?代码?尝试增加preparedStatementCacheSize大小我已将preparedStatementCacheSize增加到750,但仍然得到相同的例外情况假设jdbc.*属性设置在hibernate上删除它们,因为由于您正在配置数据源,这些属性没有用。如果您的资源没有得到妥善清理,我怀疑tx管理有误或缺位。发布一些进行数据访问的附加配置和代码。如果我将poolPreparedStatements值设置为false,有什么缺点吗
  <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>    
  <property name="poolPreparedStatements" value="true" />
  <property name="maxOpenPreparedStatements" alue="${jdbc.preparedStatementCacheSize}"/>     
  <property name="initialSize" value="${jdbc.initialSize}" />  
  <property name="maxActive" value="${jdbc.maxActive}" />
  <property name="maxIdle" value="${jdbc.maxIdle}" />
  <property name="minIdle" value="${jdbc.minIdle}" />
  <property name="validationQuery" value="${jdbc.validationQuery}" />
</bean>