【问题标题】:Shutdown timeout for JBoss?JBoss 的关机超时?
【发布时间】:2015-02-03 19:39:52
【问题描述】:

我使用 JBoss 7.1.1.Final。在这里,我有一个启动单例。在启动时我初始化一些东西,在关闭时我终止/清理我的东西。 但现在我发现,终止我可以在 1 秒内为所欲为!一秒钟后,应用程序就消失了,有时 1 秒钟不足以进行真正的清理。

代码:

@Singleton
@Startup
public class ShutdownTest {

  @PostConstruct
  public void initialize() {
    LOG.info("Initialization");
  }

  @PreDestroy
  public void terminate() {
    for(;;) {
      LOG.info("loop in terminate...");
      Tools.sleepQuietly(100); // just sleeps for 100 milliseconds
    }
  }

}

这个类在启动时确实报告了初始化,但在终止时我得到了 10 倍的输出,在此之后,JBoss 死了。

即使某些 PreDestroy 方法仍在运行,我如何配置这个时间直到 JBoss 自行终止?

目前我从 Eclipse 启动和停止 JBoss(轮询器设置为 Web 端口)。

【问题讨论】:

    标签: java singleton jboss7.x


    【解决方案1】:

    在 JBoss 7 上无法在关闭事件中执行此操作(基于来自 JBoss / WildFly 团队的 Tomaz Cerarthis answer )。

    在 Windows 上,我可以确认没有办法做到这一点(我认为对于 Linux 也是如此)。

    我发现如果您在关闭服务器之前停止应用程序,它会起作用。即:登录到网络控制台,导航到运行时(右上角的选项卡)-> 管理部署(菜单)-> 应用程序的“禁用”按钮。

    在 WildFly 8 中,您会获得关闭的“超时”选项。使用方法见this post

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 2011-01-12
      • 1970-01-01
      • 2023-04-01
      • 2021-01-28
      相关资源
      最近更新 更多