谁在关闭我的遗嘱执行人?

时间:2013-01-09 17:36:28

标签: java tomcat executorservice

我有一台服务器使用在服务器启动时创建的执行服务:

simpleExecutorService = Executors.newFixedThreadPool(nThreads, new MyThreadFactory(threadFactoryName));

然后我使用执行程序服务实例来执行某些任务。但过了一会儿(30分钟左右),我明白了:

java.util.concurrent.RejectedExecutionException
    at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1768)

我已经阅读here,当执行程序关闭时会发生这种情况。我从来没有把它关闭,所以怎么会发生这种情况呢?有关如何调试此类问题的任何想法吗?

1 个答案:

答案 0 :(得分:2)

从您链接到的相同页面:

  

方法execute(java.lang.Runnable)中提交的新任务将是   当Executor关闭时,也被拒绝了   Executor对最大线程和工作队列使用有限边界   容量,并且已经饱和。

那么也许工作队列已满并且线程数最大化了?

你对它的最新情况有什么了解吗?通过JMX?附加探查者?调试日志?什么?