首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在WebSphere下停止应用程序的后台线程

如何在WebSphere下停止应用程序的后台线程
EN

Stack Overflow用户
提问于 2011-12-15 22:02:22
回答 2查看 3.2K关注 0票数 3

我们正在WebSphere集群中部署应用程序。应用程序正在运行他自己的从未终止的线程,这些线程正在检查某些条件,例如:

代码语言:javascript
运行
复制
while(true){
  logger.severe("Unterminated thread");
  Thread.sleep(10000);
}

问题是,在WebSphere中停止应用程序之后(通过wsadmin或管理控制台),只有servlet被取消注册,但这些线程没有被终止,并且仍在运行。当我停止应用程序时,有什么方法可以杀死这个踏步吗?我们使用的是WebSphere 7。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-15 23:19:00

根据你对另一个答案的评论,我有一个建议。(请注意,我同意奥列格的观点,你真的不应该这样做,但如果你必须这样做的话……)

我假设在这段代码来自的常规Java应用程序中,这些后台线程以某种方式接收到了停止的信号。我建议的是,当您的servlet都已注销时,使用ServletContextListener发送停止信号。

请注意,如果您还没有某种方法来告诉线程停止,那么这可能是另一个bug,而这根本没有任何帮助。

票数 4
EN

Stack Overflow用户

发布于 2011-12-15 22:21:18

您不应该从JavaEE应用程序手动创建线程。线程管理应该由JavaEE容器提供。

WebSphere提供了一种WorkManager机制来帮助您满足线程需求。有关实现细节,请查看this tutorial

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8521300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档