首页 > 解决方案 > 不支持 Eecutor 服务关闭

问题描述

我正在使用 IBM Websphere 8.5.5 提供的执行器服务

ExecutorService es = (ExecutorService ) new InitialContext().lookup("wm/default")

当我调用es.shutdown()方法时,我收到错误:

java.lang.IllegalStateException: ASYN0093E: The operation shutdown is not supported.

为什么Websphere 不支持关机方式?我不应该调用那个方法吗?

标签: javawebsphereexecutorservicejava.util.concurrent

解决方案


WebSphere Application Server 拒绝该shutdown方法以符合Concurrency Utilities for Java EE 规范的以下要求,第 3.1.6 节:生命周期,其中指出:

ManagedExecutorService 实例的生命周期由应用服务器集中管理,不能由应用程序更改。

更明确的是,第 3.1.6.1 节 Java EE 产品提供者要求,其中明确指出:

ManagedExecutorService 的生命周期由应用服务器管理。ManagedExecutorService 接口上的所有生命周期操作都会抛出 java.lang.IllegalStateException 异常。这包括在 java.util.concurrent.ExecutorService 接口中定义的以下方法:awaitTermination()、isShutdown()、isTerminated()、shutdown() 和 shutdownNow()。

似乎存在此要求是为了防止应用程序在两者使用相同的执行程序时相互干扰。


推荐阅读