Azimuts
Azimuts

Reputation: 1302

Hazelcast TargetNotMemberException: Not Member! target

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

Answers (1)

Swapnil Gangrade
Swapnil Gangrade

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.

TargetNotMemberException.java

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

Related Questions