0
我需要在Websphere Application Server(8.5)上部署我的企業應用程序。爲什麼Hazelcast無法在我的應用程序服務器上關閉?
爲了處理hazelcast的生命週期我準備了以下監視對象:
public class HazelMonitor{
private static HazelcastInstance inst = null;
public static synchronized getInstance(){
if(inst == null){
inst = Hazelcast.getOrCreateInstance(...);
}
return inst;
}
public static synchronized shutdown(){
if(inst != null){
inst.shutdown();
inst = null;
}
}
}
現在,我的EJB是這樣的:
public class MyEjb{
@PostConstruct
pulic void init(){
HazelMonitor.getInstance();
}
@PreDestroy
public void close(){
HazelMonitor.shutdown();
}
}
一切似乎只是當我試圖關閉我的服務器工作:Hazelcast似乎無法關閉,最終,服務器只能掛斷,迫使我殺死該進程。 一旦我殺了這個過程,我收到一個關於未找到的類的榛樹例外節點$ 2。
我在做什麼錯?如何確保Hazelcast與我的應用程序一起關閉?
你確認創建線程轉儲的EJB'@ PreDestroy'實際上是被調用和'。 shutdown()調用正在發生? –
我猜當調用PreDestroy方法時,類加載器已經被終止。嘗試將其封裝到try/catch塊中,記錄發生的任何異常。 – noctarius