java - 不支持 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 不支持关机方式?我不应该调用那个方法吗?
解决方案
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()。
似乎存在此要求是为了防止应用程序在两者使用相同的执行程序时相互干扰。
推荐阅读
- ios - Objective-C:振动不起作用
- apache - Docker httpd apache 并让 cgi-bin 执行 perl 脚本
- mysql - 如果它已经存在,为什么它无法打开引用的表?
- google-cloud-platform - 使用来自 Google Pubsub 的消息并将其发布到 Kafka
- java - 检查集合中的单词是否等于外部文件中的单词
- javascript - scrollIntoView 不会在 Angular 中触发鼠标滚轮或滚动事件
- android - 无法在 android studio 中生成签名的 apk
- parsing - 在执行时定义数据类型?
- python - 加载保存的模型后,在同一评估数据集上获得不同的准确度
- html - HTML/CSS:如何使某些输入字段在表单的同一行?