2016-04-30 116 views
1

在我們的應用程序中,Hazelcast作爲服務器(Weblogic 12C)啓動的一部分進行初始化,並在服務器關閉期間調用shutdown。Hazelcast端口未被殺死

在關機時,我們使用以下代碼: hz.getLifecycleService()。shutdown();

在服務器啓動期間,我們得到以下異常 SEVERE:端口[6713]已在使用中並且禁用了自動增量。 Hazelcast無法啓動

因此,我們的部署重新啓動不起作用。

解決方法:作爲解決方法,我們需要終止進程並重新啓動服務器。不是一個理想的解決方法。
是否有一些設置要在操作系統級別完成?

如果有人遇到此問題,請幫助我們解決。

java.net.BindException: Address already in use 
    at sun.nio.ch.Net.bind0(Native Method) 
    at sun.nio.ch.Net.bind(Net.java:463) 
    at sun.nio.ch.Net.bind(Net.java:455) 
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) 
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) 
    at com.hazelcast.impl.AddressPicker.pickAddress(AddressPicker.java:85) 
    at com.hazelcast.impl.Node.<init>(Node.java:142) 
    at com.hazelcast.impl.FactoryImpl.<init>(FactoryImpl.java:386) 
    at com.hazelcast.impl.FactoryImpl.newHazelcastInstanceProxy(FactoryImpl.java:133) 
    at com.hazelcast.impl.FactoryImpl.newHazelcastInstanceProxy(FactoryImpl.java:119) 
    at com.hazelcast.impl.FactoryImpl.newHazelcastInstanceProxy(FactoryImpl.java:104) 
    at com.hazelcast.core.Hazelcast.newHazelcastInstance(Hazelcast.java:507) 

回答

0

由於上一個節點沒有正常關閉並且處於掛起狀態,所以發生了異常。

嘗試在另一個線程本身中添加一個關閉掛鉤以正常關閉。將下面的代碼片段添加到方法中,並在啓動節點時調用它。

Runtime 
.getRuntime() 
    .addShutdownHook(new Thread(() -> hazelcastInstance.getLifecycleService().shutdown()));