‘壹’ 易用配送软件数据库异常怎么解决的
在高并发的情况下,如果你的线程池大于设置的连接数,等待线程大于设置的等待时间会出现该异常。
1、增加等待时间。
2、增加数据库连接数。
‘贰’ 请教各位 java 线程池 出现异常的问题! 问题如下: 为什么会出现异常
package text1.thread;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CachedThreadPool {
/**
* @param args
*/
public static void main(String[] args) {
ExecutorService exec = Executors.newCachedThreadPool();
for(int i = 0; i < 5; i++){
exec.execute(new LiftOff());
//exec.shutdown(); 这句有问题 不能每次执行后就把线程池关闭了啊。这样就只能执行一个任务,其他任务都被拒绝了。 改在执行完后再关闭池。
}
exec.shutdown();
}
}
应该是你的exec.shutdown();这句位置问题,不能放在循环的内部。
‘叁’ java爬虫采用多线程,数据库连接多了就报异常
可以通过测试对错误原因进行排查,如果连接少量时不出问题,那就是连接量超出了某一数值出现异常,可以查看数据库的链接上限,如果是连接上限原因,可以尝试上调上限或者降低连接数量
‘肆’ mysql数据库线程池问题,为什么总是报错Cannot create PoolableConnectionFactory
一般这种情况可能的原因有这几种:
1. 可能连接超过mysql设置的上限(你的应该没超)
2. 程序问题,建立了连接不关闭(这个有可能,看看你的session)
3. 在没有使用连接池的情况下,每次都建立一个新的连接到数据库(即使每次操作完毕都及时准确的close了),但是由于可能建立到数据库连接的频率很高(比如在for循环里),那么会迅速建立大量的tcp连接到mysql的指定端口,OS在关闭tcp连接是有一定的延迟的,也是有一定数量限制的,所以就会出现无法连接的情况(connection refused)。
-------------------------------------
我个人感觉设置最大连接数可能用处不大,因为默认的是100,你说刚10个就出问题~所以我觉得可能还是和系统有关系,因为你说刷新的不频繁就不会报错~
不过你到可以先试试看~万一能行更好不是~
还有啊,你可以找别的机器试验下,在别人的电脑上做下测试~