Reputation: 1302
I have seen a lot of posts about a com.hazelcast.spi.exception.TargetNotMemberException: Not Member! target:
But what to do in this cases? Question : Is possible to catch the exception and do "hazelCastInstance.shutdown()`"
Also its possible to see in the "wrong node" continously : "Remaining migration tasks in queue => 1"
Hazelcast 3.7 Cluster with two nodes.
Complete StackTrace:
com.hazelcast.spi.exception.TargetNotMemberException: Not Member! target: [machine]:5704, partitionId: 0, operation: com.hazelcast.map.impl.query.QueryPartitionOperation, service: hz:impl:mapService
at com.hazelcast.spi.impl.operationservice.impl.Invocation.initInvocationTarget(Invocation.java:324)
at com.hazelcast.spi.impl.operationservice.impl.Invocation.doInvoke(Invocation.java:256)
at com.hazelcast.spi.impl.operationservice.impl.Invocation.access$300(Invocation.java:94)
at com.hazelcast.spi.impl.operationservice.impl.Invocation$InvocationRetryTask.run(Invocation.java:530)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:682)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)
at ------ submitted from ------.(Unknown Source)
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolve(InvocationFuture.java:111)
at com.hazelcast.spi.impl.operationservice.impl.InvocationFuture.resolveAndThrow(InvocationFuture.java:74)
at com.hazelcast.spi.impl.AbstractInvocationFuture.get(AbstractInvocationFuture.java:158)
at com.hazelcast.map.impl.query.MapQueryEngineImpl.addResultsOfPredicate(MapQueryEngineImpl.java:605)
at com.hazelcast.map.impl.query.MapQueryEngineImpl.invokeQueryAllPartitions(MapQueryEngineImpl.java:506)
at com.hazelcast.map.impl.proxy.MapProxyImpl.entrySet(MapProxyImpl.java:633)
at com.hazelcast.map.impl.proxy.MapProxyImpl.entrySet(MapProxyImpl.java:622)
at myClass.getAll(MyClass.java:10)
Upvotes: 1
Views: 2755
Reputation: 464
TargetNotMemberException extends RetryableHazelcastException which further extends HazelcastException , so you can catch HazelcastException and then shutdown the instance or you can catch directly TargetNotMemberException and shutdown Hazelcast instance. You can look into below class.
You can code like this...
import java.io.PrintWriter;
import java.io.StringWriter;
import com.hazelcast.config.Config;
import com.hazelcast.core.Hazelcast;
import com.hazelcast.core.HazelcastException;
import com.hazelcast.core.HazelcastInstance;
import com.hazelcast.spi.exception.TargetNotMemberException;
public class HazelcastExceptionTest {
public static void main(String[] args) {
Config config = new Config("instanceOne");
HazelcastInstance instanceOne = Hazelcast.newHazelcastInstance(config);
try {
testTargetNotMemberException();
}
catch (HazelcastException e) {
StringWriter trace = new StringWriter();
PrintWriter eTrace = new PrintWriter(trace, true);
e.printStackTrace(eTrace);
System.out.println("exception " + trace.toString());
instanceOne.shutdown();
}
}
public static void testTargetNotMemberException() {
throw new TargetNotMemberException("TargetNotMemberException");
}
}
Upvotes: 0