是说数据库连接次数已经执行了最大连接数
看了看项目确实是这样的,在服务器有一个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>
11 个解决方案
#1
补充一下,spring配置,只是举个例子;
#2
建议调整 MySQL 配置文件中 max_user_connections 的值。
#3
可以在Spring的配置文件applicationContext.xml中配置一下:
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
#4
destroy-method="close" 不是你说的那个意思。
是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。
你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。
没有关闭的话,用过的连接没有还给连接池。
是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。
你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。
没有关闭的话,用过的连接没有还给连接池。
#5
这里说Default是15,那我才用了10个
#6
我没有手动关闭,是用getHibernateTemplate()的相应方法,这都交给hibernate来做了。
#7
quartz 的 job 也是用的 hibernateTemplate吗?
#8
我也不知道问题在哪里,只是那天我上传新的模块,需重启tomcat服务器.启动后,导致公司后台系统不能用。就一直报Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: User 'comservi_webapp' has exceeded the 'max_user_connections' resource (current value: 10);
由于公司有两个服务器,web 项目在一个服务器A上,然后其他 Quartz部分的项目就放另外一个服务器B上,我把B关了,公司后台就立马能用了。
想到以后如果还有其他什么需求,需要结合quartz来做,添加trigger,那么就麻烦了。
求大家帮忙指点指点。谢谢 。。。
由于公司有两个服务器,web 项目在一个服务器A上,然后其他 Quartz部分的项目就放另外一个服务器B上,我把B关了,公司后台就立马能用了。
想到以后如果还有其他什么需求,需要结合quartz来做,添加trigger,那么就麻烦了。
求大家帮忙指点指点。谢谢 。。。
#9
是的
#10
就是这个答案。谢谢!
#11
#1
补充一下,spring配置,只是举个例子;
#2
建议调整 MySQL 配置文件中 max_user_connections 的值。
#3
可以在Spring的配置文件applicationContext.xml中配置一下:
<!--连接池中保留的最小连接数。-->
<property name="minPoolSize">
<value>5</value>
</property>
<!--连接池中保留的最大连接数。Default: 15 -->
<property name="maxPoolSize">
<value>30</value>
</property>
#4
destroy-method="close" 不是你说的那个意思。
是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。
你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。
没有关闭的话,用过的连接没有还给连接池。
是说被IoC容器管理的数据库连接池在卸载的时候要调用close方法。
你的问题不像是连接池配置问题啊。 是不是你用jdbc了结果没有关闭啊。
没有关闭的话,用过的连接没有还给连接池。
#5
这里说Default是15,那我才用了10个
#6
我没有手动关闭,是用getHibernateTemplate()的相应方法,这都交给hibernate来做了。
#7
quartz 的 job 也是用的 hibernateTemplate吗?
#8
我也不知道问题在哪里,只是那天我上传新的模块,需重启tomcat服务器.启动后,导致公司后台系统不能用。就一直报Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: User 'comservi_webapp' has exceeded the 'max_user_connections' resource (current value: 10);
由于公司有两个服务器,web 项目在一个服务器A上,然后其他 Quartz部分的项目就放另外一个服务器B上,我把B关了,公司后台就立马能用了。
想到以后如果还有其他什么需求,需要结合quartz来做,添加trigger,那么就麻烦了。
求大家帮忙指点指点。谢谢 。。。
由于公司有两个服务器,web 项目在一个服务器A上,然后其他 Quartz部分的项目就放另外一个服务器B上,我把B关了,公司后台就立马能用了。
想到以后如果还有其他什么需求,需要结合quartz来做,添加trigger,那么就麻烦了。
求大家帮忙指点指点。谢谢 。。。
#9
是的
#10
就是这个答案。谢谢!