2013-02-28 94 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