@Override public void run() { InternalOperationService service = nodeEngine.getOperationService(); Address thisAddr = getLocalMember().getAddress(); for (Map.Entry<String, String> entry : ownershipMappings.entrySet()) { String clientUuid = entry.getKey(); String memberUuid = entry.getValue(); if (deadMemberUuid.equals(memberUuid)) { ClientDisconnectionOperation op = new ClientDisconnectionOperation(clientUuid, memberUuid); service.createInvocationBuilder(ClientEngineImpl.SERVICE_NAME, op, thisAddr).invoke(); } } } }
@Override public void run() { InternalOperationService service = nodeEngine.getOperationService(); Address thisAddr = getLocalMember().getAddress(); for (Map.Entry<String, String> entry : ownershipMappings.entrySet()) { String clientUuid = entry.getKey(); String memberUuid = entry.getValue(); if (deadMemberUuid.equals(memberUuid)) { ClientDisconnectionOperation op = new ClientDisconnectionOperation(clientUuid, memberUuid); service.createInvocationBuilder(ClientEngineImpl.SERVICE_NAME, op, thisAddr).invoke(); } } } }
private void callDisconnectionOperation(String clientUuid, long authenticationCorrelationId) { Collection<Member> memberList = nodeEngine.getClusterService().getMembers(); OperationService operationService = nodeEngine.getOperationService(); String memberUuid = getLocalMember().getUuid(); String ownerMember = ownershipMappings.get(clientUuid); if (!memberUuid.equals(ownerMember)) { // do nothing if the owner already changed (double checked locking) return; } if (lastAuthenticationCorrelationIds.get(clientUuid).get() > authenticationCorrelationId) { //a new authentication already made for that client. This check is needed to detect // "a disconnected client is reconnected back to same node" return; } for (Member member : memberList) { ClientDisconnectionOperation op = new ClientDisconnectionOperation(clientUuid, memberUuid); operationService.createInvocationBuilder(SERVICE_NAME, op, member.getAddress()).invoke(); } } }
private void callDisconnectionOperation(String clientUuid, long authenticationCorrelationId) { Collection<Member> memberList = nodeEngine.getClusterService().getMembers(); OperationService operationService = nodeEngine.getOperationService(); String memberUuid = getLocalMember().getUuid(); String ownerMember = ownershipMappings.get(clientUuid); if (!memberUuid.equals(ownerMember)) { // do nothing if the owner already changed (double checked locking) return; } if (lastAuthenticationCorrelationIds.get(clientUuid).get() > authenticationCorrelationId) { //a new authentication already made for that client. This check is needed to detect // "a disconnected client is reconnected back to same node" return; } for (Member member : memberList) { ClientDisconnectionOperation op = new ClientDisconnectionOperation(clientUuid, memberUuid); operationService.createInvocationBuilder(SERVICE_NAME, op, member.getAddress()).invoke(); } } }