2013-02-28 42 views
2

我使用JBoss 7.1.1.Final。在这里我有一个启动单身人士。在启动时我初始化了一些东西,在关机时我终止/清理了我的东西。 但现在我发现,终止我可以做任何我想要的1秒!一秒后,应用程序即将离开,有时候1秒钟没有足够的时间进行真正的清理。关闭JBoss的超时时间?

代码:

@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 
    } 
    } 

} 

该类执行报告在启动时initalization,但在终止我得到的输出的10倍,在这之后,JBoss是死了。

如何配置这个时间,直到JBoss自杀,即使PreDestroy方法仍在运行?

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

回答

0

在关机事件中,JBoss 7没有办法做到这一点(基于来自JBoss/WildFly团队的Tomaz Cerarthis answer)。

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

如果您在关闭服务器之前暂停应用程序,我发现它可行。即:登录到webconsole,导航到运行系统(右上角的选项卡) - >管理部署(菜单) - >按钮“禁用”您的应用程序。

在WildFly 8中,您将获得关机的“超时”选项。有关如何使用它,请参阅this post