还是之前的业务,使用线程池,线程池里的job的业务是去请求一个http的连接并得到返回。
在qa环境没有问题,在生产服务器上会有30%会报出connection reset的Exception。而且就是在没有量的情况下,就是生产测试随便走10笔。
线程池的配置如下
taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(1);
taskExecutor.setMaxPoolSize(20);
taskExecutor.setQueueCapacity(10000);
taskExecutor.setDaemon(true);
taskExecutor.initialize();
connection reset看下来是因为客户端自己关闭了连接。
难道问题是出在了taskExecutor.setDaemon(true); 这个参数配置上??
这个是因为上次压力把应用压掉我尝试性的加上的。
子线程结束前,父线程就结束,所以是客户端自己关闭连接?!!!
但J2EE容器都是有线程池的,qa环境包括压力环境也没有报出这个问题!服务器的环境配置不一样?!!
在我这个改动上去之前,貌似没有这种情况了?!
加上后走了几笔也没有类似情况发生。
后续。。。。。。

没有评论:
发表评论