java web 启动超时,关于java ee:如何在WebSphere Application Server上超时运行长时间的Web请求?...

本问题已经有最佳答案,请猛点这里访问。

我正在尝试在IBM WebSphere Application Server v.8.5.5.4上生成JavaEE应用程序。

如果Web请求导致计算时间太长(出于任何原因,从意外的大量数据到编程错误导致无限循环),我想在一段时间后中止它们。

我在Web Sphere文档中找不到任何内容(像往常一样,我必须说)。我到目前为止在StackOverflow和其他地方找到的所有内容都不适合我的情况:

客户端超时:不是我想要的,因为我想通过杀死(几乎)无休止的循环线程来节省服务器资源。

容器管理事务:我没有使用它们,所以在这里设置超时无处可寻。

连接超时(JDBC Datasource):我并不担心数据库请求花费太长时间,而是关于我的业务逻辑永远循环。

WAS Stuck Thread Detection:据我所知,这只能用于打印警告。

我会选择任何服务器端解决方案;它可能是一些WAS设置或一些我不知道的普通JavaEE / Servlet配置。

这里有任何WebSphere专家吗?谢谢您的帮助!

编辑:

实际上是如何在Java中杀死一个线程?以及如何超时线程。提出这个问题我认为这在Java中是可行的,因此在WebSphere中必须有一些功能。

无论JVM是否是像WebSphere这样的应用程序服务器,都无法(安全地)强制停止或"超时"任何JVM中正在运行的线程。 对于陷入纯粹"计算"的线程尤其如此(如果线程最终到达中断点,那么Thread.interrupt可能是可用的;例如,挂起线程通知监听器可能能够做到,但没有 内置对WebSphere中的支持)。 你最好的选择是写"合作"中断/取消; 也就是说,您需要显式编写代码,定期检查它是否已运行太长并取消自身。 至于无意的无限循环,你唯一的防御是强大/经过良好测试的代码。

大! 感谢您的回答,我发现我正在寻找一个不存在的WebSphere功能。 毕竟,它并不总是WebSphere的错;)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值