出于测试目的,我正在集群中运行4个hazelcast实例。当我的服务器在hazelcast客户端上运行了12个小时时,出现此错误。我为客户提供的代码如下。
ClientConfig config = new ClientConfig();
config.getNetworkConfig().addAddress(ip);
config.getNetworkConfig().setConnectionAttemptLimit(0);
config.getConnectionStrategyConfig().setReconnectMode(ClientConnectionStrategyConfig.ReconnectMode.ON);
//SubZero.useAsGlobalSerializer(config);
GroupConfig groupConfig = config.getGroupConfig();
groupConfig.setName("dev");
config.setProperty("pool.size", "" + SystemInfo.getSystemCore());
config.setProperty("hazelcast.logging.type", "log4j");
setHzClient(HazelcastClient.newHazelcastClient(config));
仅供参考,错误的堆栈跟踪如下:
2019-12-23 18:30:59,140 ERROR - class com.hazelcast.client.HazelcastClientNotActiveException: Client is shutdown
at com.hazelcast.client.impl.clientside.DefaultClientExtension$1.get(DefaultClientExtension.java:106)
at com.hazelcast.client.impl.clientside.DefaultClientExtension$1.get(DefaultClientExtension.java:103)
at com.hazelcast.internal.serialization.impl.bufferpool.BufferPoolThreadLocal.get(BufferPoolThreadLocal.java:107)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:141)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:133)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:118)
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:106)
at com.hazelcast.client.spi.ClientProxy.toData(ClientProxy.java:98)
at com.hazelcast.client.proxy.ClientMapProxy.containsKeyInternal(ClientMapProxy.java:296)
at com.hazelcast.client.proxy.ClientMapProxy.containsKey(ClientMapProxy.java:292)
at com.uffizio.gps.driver.teltonika.avl.tcplistener.DeviceUpdates.storeLastLog(DeviceUpdates.java:86)
at com.uffizio.protocol.FilterBean.DeviceUpdateProcedure(FilterBean.java:335)
at com.uffizio.protocol.FilterBean.filter(FilterBean.java:75)
at com.uffizio.protocol.Protocol.transferData(Protocol.java:463)
at com.uffizio.protocol.Protocol.channelRead(Protocol.java:129)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)