Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AwsConfig able to connect to hazelcast cluster inside EC2 but ClientConfig not able to connect #4323

Closed
rajeshnair opened this issue Dec 17, 2014 · 1 comment

Comments

@rajeshnair
Copy link

I am trying to connect a hazelcast client running from outside EC2 to connect to hazelcast instance running inside EC2

I have been able to run the hazelcast instance running using EC2 clustering with access, key secret key etc.

The following code using AWSClient correctly retrieves the server's information as well.
The access key and secret key is same as provided in server

 AwsConfig config = new AwsConfig(); 
        config.setAccessKey("******") ;
        config.setSecretKey("******" );
        config.setRegion("us-east-1" );
        config.setSecurityGroupName("launch-wizard-1");
        config.setEnabled(true);
        AWSClient client = new AWSClient( config );

        Collection<String> ipAddresses = client.getPrivateIpAddresses();
        System.out.println( "addresses found:" + ipAddresses ); 
        for ( String ip: ipAddresses ) {
          System.out.println( ip ); 
        }

        Map<String,String> addresses = client.getAddresses();
        Iterator<Map.Entry<String, String>> iter = addresses.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry<java.lang.String, java.lang.String> entry = (Map.Entry<java.lang.String, java.lang.String>) iter
                    .next();
            System.out.println(entry.getKey()+" "+entry.getValue());
        }

The above code when run from my mac using the same prints

addresses found:[172.31.39.10]
172.31.39.10
172.31.39.10 54.172.62.197

But the below code fails to connect to server

ClientAwsConfig clientAwsConfig = new ClientAwsConfig();
        clientAwsConfig.setInsideAws(false );
        clientAwsConfig.setAccessKey("*********" );
        clientAwsConfig.setSecretKey("*************" );
        clientAwsConfig.setRegion("us-east-1" );
        clientAwsConfig.setHostHeader("ec2.amazonaws.com" );
        clientAwsConfig.setSecurityGroupName("launch-wizard-1" );
        clientAwsConfig.setEnabled(true);

        ClientConfig clientConfig = new ClientConfig();
        clientConfig.getNetworkConfig().setAwsConfig( clientAwsConfig );

        HazelcastInstance client = HazelcastClient.newHazelcastClient( clientConfig );
        Collection<DistributedObject> doColl =  client.getDistributedObjects();
        System.out.println(doColl.size());

The above code gives the following error

Dec 17, 2014 2:33:09 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_dev][3.3.2] is STARTING
Dec 17, 2014 2:33:09 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_dev][3.3.2] is STARTED
Dec 17, 2014 2:33:14 PM com.hazelcast.client.spi.impl.ClusterListenerThread
WARNING: Unable to get alive cluster connection, try in 0 ms later, attempt 1 of 2.
Dec 17, 2014 2:33:17 PM com.hazelcast.client.spi.impl.ClusterListenerThread
WARNING: Unable to get alive cluster connection, try in 480 ms later, attempt 2 of 2.
Dec 17, 2014 2:33:20 PM com.hazelcast.client.spi.impl.ClusterListenerThread
SEVERE: Error while connecting to cluster!
java.lang.IllegalStateException: Unable to connect to any address in the config!
    at com.hazelcast.client.spi.impl.ClusterListenerThread.connectToOne(ClusterListenerThread.java:279)
    at com.hazelcast.client.spi.impl.ClusterListenerThread.run(ClusterListenerThread.java:79)
Caused by: com.hazelcast.spi.exception.RetryableIOException: java.util.concurrent.ExecutionException: com.hazelcast.core.HazelcastException: java.net.ConnectException: Connection refused
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$OwnerConnectionFuture.createNew(ClientConnectionManagerImpl.java:652)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$OwnerConnectionFuture.access$300(ClientConnectionManagerImpl.java:604)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl.ownerConnection(ClientConnectionManagerImpl.java:267)
    at com.hazelcast.client.spi.impl.ClusterListenerThread.connectToOne(ClusterListenerThread.java:251)
    ... 1 more
Caused by: java.util.concurrent.ExecutionException: com.hazelcast.core.HazelcastException: java.net.ConnectException: Connection refused
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:262)
    at java.util.concurrent.FutureTask.get(FutureTask.java:119)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$OwnerConnectionFuture.createNew(ClientConnectionManagerImpl.java:644)
    ... 4 more
Caused by: com.hazelcast.core.HazelcastException: java.net.ConnectException: Connection refused
    at com.hazelcast.util.ExceptionUtil.rethrow(ExceptionUtil.java:52)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$ConnectionProcessor.call(ClientConnectionManagerImpl.java:409)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$ConnectionProcessor.call(ClientConnectionManagerImpl.java:356)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at com.hazelcast.util.executor.CompletableFutureTask.run(CompletableFutureTask.java:57)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
    at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
    at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:692)
    at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:115)
    at com.hazelcast.client.connection.nio.ClientConnectionManagerImpl$ConnectionProcessor.call(ClientConnectionManagerImpl.java:389)
    ... 12 more

Dec 17, 2014 2:33:20 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_dev][3.3.2] is SHUTTING_DOWN
Dec 17, 2014 2:33:20 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_dev][3.3.2] is SHUTDOWN
Exception in thread "main" java.lang.IllegalStateException: Cannot get initial partitions!
    at com.hazelcast.client.spi.impl.ClientPartitionServiceImpl.getInitialPartitions(ClientPartitionServiceImpl.java:105)
    at com.hazelcast.client.spi.impl.ClientPartitionServiceImpl.start(ClientPartitionServiceImpl.java:63)
    at com.hazelcast.client.HazelcastClient.start(HazelcastClient.java:260)
    at com.hazelcast.client.HazelcastClient.newHazelcastClient(HazelcastClient.java:222)
    at HZClient.main(HZClient.java:45)

What could I be missing ?

@rajeshnair
Copy link
Author

Silly mistake!

I forgot to provide GroupConfig!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant