Hazelcast端口未被杀死
问题描述:
在我们的应用程序中,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)
答
由于上一个节点没有正常关闭并且处于挂起状态,所以发生了异常。
尝试在另一个线程本身中添加一个关闭挂钩以正常关闭。将下面的代码片段添加到方法中,并在启动节点时调用它。
Runtime
.getRuntime()
.addShutdownHook(new Thread(() -> hazelcastInstance.getLifecycleService().shutdown()));