hibernate+spring +quartz 数据库连接超过最大连接数
最近碰到报这样的错:Caused by:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: User 'comservi_webapp' has exceeded the 'max_user_connections' resource (current value: 10)
是说数据库连接次数已经执行了最大连接数
看了看项目确实是这样的,在服务器有一个web项目,算一个连接;
然后在另外一个服务器上用quartz定时的调任务,这里配置了9个trigger触发器。加起来就是10。
白天工作的时候,我需要查询数据,连接数据就连不上,报错。
这个问题怎样解决呢?是连接池的需要配更大吗?
下面是spring的配置:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">//这里配置了close,那么每次连接用完就会关闭的
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url"
value="jdbc:mysql://localhost/comservi_tractor?useUnicode=true&characterEncoding=iso-8859-1&zeroDateTimeBehavior=convertToNull">
</property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
------解决方案--------------------
建议调整 MySQL 配置文件中 max_user_connections 的值。
------解决方案--------------------可以在Spring的配置文件applicationContext.xml中配置一下:
XML code
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
------解决方案--------------------
destroy-method="close" 不是你说的那个意思。
是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。
你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。
没有关闭的话,用过的连接没有还给连接池。
------解决方案--------------------
quartz 的 job 也是用的 hibernateTemplate吗?