2016-04-30 80 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()));