Search in sources :

Example 6 with ClientConnectionManager

use of com.hazelcast.client.impl.connection.ClientConnectionManager in project hazelcast by hazelcast.

the class ClientUniSocketTxnTest method testUniSocketClient_shouldNotOpenANewConnection.

@Test
public void testUniSocketClient_shouldNotOpenANewConnection() {
    hazelcastFactory.newHazelcastInstance();
    ClientConfig config = new ClientConfig();
    config.getNetworkConfig().setRedoOperation(true);
    config.getNetworkConfig().setSmartRouting(false);
    // try to force second member to connect when exist
    config.setLoadBalancer(new AbstractLoadBalancer() {

        @Override
        public Member next() {
            Member[] members = getMembers();
            if (members == null || members.length == 0) {
                return null;
            }
            if (members.length == 2) {
                return members[1];
            }
            return members[0];
        }

        @Override
        public Member nextDataMember() {
            Member[] members = getDataMembers();
            if (members == null || members.length == 0) {
                return null;
            }
            if (members.length == 2) {
                return members[1];
            }
            return members[0];
        }

        @Override
        public boolean canGetNextDataMember() {
            return true;
        }
    });
    final HazelcastInstance client = hazelcastFactory.newHazelcastClient(config);
    hazelcastFactory.newHazelcastInstance();
    assertTrueEventually(new AssertTask() {

        @Override
        public void run() throws Exception {
            assertEquals(2, client.getCluster().getMembers().size());
        }
    });
    ClientConnectionManager connectionManager = getHazelcastClientInstanceImpl(client).getConnectionManager();
    TransactionContext context = client.newTransactionContext();
    context.beginTransaction();
    context.commitTransaction();
    assertEquals(1, connectionManager.getActiveConnections().size());
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) TransactionContext(com.hazelcast.transaction.TransactionContext) AssertTask(com.hazelcast.test.AssertTask) ClientConfig(com.hazelcast.client.config.ClientConfig) AbstractLoadBalancer(com.hazelcast.client.util.AbstractLoadBalancer) Member(com.hazelcast.cluster.Member) ClientConnectionManager(com.hazelcast.client.impl.connection.ClientConnectionManager) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 7 with ClientConnectionManager

use of com.hazelcast.client.impl.connection.ClientConnectionManager in project hazelcast by hazelcast.

the class ClientTxnUniSocketTest method testUniSocketClient_shouldNotOpenANewConnection.

@Test
public void testUniSocketClient_shouldNotOpenANewConnection() {
    hazelcastFactory.newHazelcastInstance();
    ClientConfig config = new ClientConfig();
    config.getNetworkConfig().setRedoOperation(true);
    config.getNetworkConfig().setSmartRouting(false);
    // try to force second member to connect when exist
    config.setLoadBalancer(new AbstractLoadBalancer() {

        @Override
        public Member next() {
            Member[] members = getMembers();
            if (members == null || members.length == 0) {
                return null;
            }
            if (members.length == 2) {
                return members[1];
            }
            return members[0];
        }

        @Override
        public Member nextDataMember() {
            Member[] members = getDataMembers();
            if (members == null || members.length == 0) {
                return null;
            }
            if (members.length == 2) {
                return members[1];
            }
            return members[0];
        }

        @Override
        public boolean canGetNextDataMember() {
            return true;
        }
    });
    final HazelcastInstance client = hazelcastFactory.newHazelcastClient(config);
    hazelcastFactory.newHazelcastInstance();
    assertTrueEventually(new AssertTask() {

        @Override
        public void run() throws Exception {
            assertEquals(2, client.getCluster().getMembers().size());
        }
    });
    ClientConnectionManager connectionManager = getHazelcastClientInstanceImpl(client).getConnectionManager();
    TransactionContext context = client.newTransactionContext();
    context.beginTransaction();
    context.commitTransaction();
    assertEquals(1, connectionManager.getActiveConnections().size());
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) TransactionContext(com.hazelcast.transaction.TransactionContext) AssertTask(com.hazelcast.test.AssertTask) ClientConfig(com.hazelcast.client.config.ClientConfig) AbstractLoadBalancer(com.hazelcast.client.util.AbstractLoadBalancer) Member(com.hazelcast.cluster.Member) ClientConnectionManager(com.hazelcast.client.impl.connection.ClientConnectionManager) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 8 with ClientConnectionManager

use of com.hazelcast.client.impl.connection.ClientConnectionManager in project hazelcast by hazelcast.

the class TcpClientConnectionTest method destroyConnection_whenDestroyedMultipleTimes_thenListenerRemoveCalledOnce.

@Test
public void destroyConnection_whenDestroyedMultipleTimes_thenListenerRemoveCalledOnce() {
    HazelcastInstance server = hazelcastFactory.newHazelcastInstance();
    HazelcastInstance client = hazelcastFactory.newHazelcastClient();
    HazelcastClientInstanceImpl clientImpl = ClientTestUtil.getHazelcastClientInstanceImpl(client);
    ClientConnectionManager connectionManager = clientImpl.getConnectionManager();
    final CountingConnectionListener listener = new CountingConnectionListener();
    connectionManager.addConnectionListener(listener);
    UUID serverUuid = server.getCluster().getLocalMember().getUuid();
    final Connection connectionToServer = connectionManager.getConnection(serverUuid);
    ReconnectListener reconnectListener = new ReconnectListener();
    clientImpl.getLifecycleService().addLifecycleListener(reconnectListener);
    connectionToServer.close(null, null);
    assertOpenEventually(reconnectListener.reconnectedLatch);
    connectionToServer.close(null, null);
    assertEqualsEventually(() -> listener.connectionRemovedCount.get(), 1);
    sleepMillis(100);
    assertEquals("connection removed should be called only once", 1, listener.connectionRemovedCount.get());
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) Connection(com.hazelcast.internal.nio.Connection) HazelcastClientInstanceImpl(com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl) UUID(java.util.UUID) ClientConnectionManager(com.hazelcast.client.impl.connection.ClientConnectionManager) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 9 with ClientConnectionManager

use of com.hazelcast.client.impl.connection.ClientConnectionManager in project hazelcast by hazelcast.

the class ClientRegressionWithRealNetworkTest method testConnectionCountAfterClientReconnect.

private void testConnectionCountAfterClientReconnect(String memberAddress, String clientAddress) {
    Config config = new Config();
    config.getNetworkConfig().setPublicAddress(memberAddress);
    HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance(config);
    ClientConfig clientConfig = new ClientConfig();
    clientConfig.getNetworkConfig().addAddress(clientAddress);
    clientConfig.getConnectionStrategyConfig().getConnectionRetryConfig().setClusterConnectTimeoutMillis(Long.MAX_VALUE);
    HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);
    HazelcastClientInstanceImpl clientInstanceImpl = getHazelcastClientInstanceImpl(client);
    ClientConnectionManager connectionManager = clientInstanceImpl.getConnectionManager();
    assertTrueEventually(() -> assertEquals(1, connectionManager.getActiveConnections().size()));
    ReconnectListener reconnectListener = new ReconnectListener();
    client.getLifecycleService().addLifecycleListener(reconnectListener);
    hazelcastInstance.shutdown();
    assertOpenEventually(reconnectListener.disconnectedLatch);
    Hazelcast.newHazelcastInstance(config);
    assertOpenEventually(reconnectListener.reconnectedLatch);
    assertEquals(1, connectionManager.getActiveConnections().size());
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) ClientConfig(com.hazelcast.client.config.ClientConfig) ClientNetworkConfig(com.hazelcast.client.config.ClientNetworkConfig) Config(com.hazelcast.config.Config) ClientConnectionStrategyConfig(com.hazelcast.client.config.ClientConnectionStrategyConfig) HazelcastClientInstanceImpl(com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl) ClientConfig(com.hazelcast.client.config.ClientConfig) TcpClientConnectionManager(com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager) ClientConnectionManager(com.hazelcast.client.impl.connection.ClientConnectionManager)

Example 10 with ClientConnectionManager

use of com.hazelcast.client.impl.connection.ClientConnectionManager in project hazelcast by hazelcast.

the class TcpClientConnectionTest method testAddingConnectionListenerTwice_shouldCauseEventDeliveredTwice.

@Test
public void testAddingConnectionListenerTwice_shouldCauseEventDeliveredTwice() {
    hazelcastFactory.newHazelcastInstance();
    HazelcastInstance client = hazelcastFactory.newHazelcastClient();
    HazelcastClientInstanceImpl clientImpl = ClientTestUtil.getHazelcastClientInstanceImpl(client);
    ClientConnectionManager connectionManager = clientImpl.getConnectionManager();
    final CountingConnectionListener listener = new CountingConnectionListener();
    connectionManager.addConnectionListener(listener);
    connectionManager.addConnectionListener(listener);
    hazelcastFactory.newHazelcastInstance();
    assertTrueEventually(new AssertTask() {

        @Override
        public void run() {
            assertEquals(listener.connectionAddedCount.get(), 2);
        }
    });
}
Also used : HazelcastInstance(com.hazelcast.core.HazelcastInstance) HazelcastClientInstanceImpl(com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl) AssertTask(com.hazelcast.test.AssertTask) ClientConnectionManager(com.hazelcast.client.impl.connection.ClientConnectionManager) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

ClientConnectionManager (com.hazelcast.client.impl.connection.ClientConnectionManager)14 HazelcastClientInstanceImpl (com.hazelcast.client.impl.clientside.HazelcastClientInstanceImpl)8 HazelcastInstance (com.hazelcast.core.HazelcastInstance)6 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)5 QuickTest (com.hazelcast.test.annotation.QuickTest)5 Test (org.junit.Test)5 Address (com.hazelcast.cluster.Address)4 ClientConfig (com.hazelcast.client.config.ClientConfig)3 Connection (com.hazelcast.internal.nio.Connection)3 AssertTask (com.hazelcast.test.AssertTask)3 AbstractLoadBalancer (com.hazelcast.client.util.AbstractLoadBalancer)2 Member (com.hazelcast.cluster.Member)2 TransactionContext (com.hazelcast.transaction.TransactionContext)2 UUID (java.util.UUID)2 ClientConnectionStrategyConfig (com.hazelcast.client.config.ClientConnectionStrategyConfig)1 ClientNetworkConfig (com.hazelcast.client.config.ClientNetworkConfig)1 ClientImpl (com.hazelcast.client.impl.ClientImpl)1 ClientConnection (com.hazelcast.client.impl.connection.ClientConnection)1 TcpClientConnection (com.hazelcast.client.impl.connection.tcp.TcpClientConnection)1 TcpClientConnectionManager (com.hazelcast.client.impl.connection.tcp.TcpClientConnectionManager)1