Callable<String> task = new Echo(input); String key = "foo"; IMap map1 = hz.getMap("m1"); IMap map2 = hz.getMap("m2"); map1.put(key,1); map2.put(key,2); IExecutorService executorService = hz.getExecutorService("default"); Future<String> future = executorService.submitToKeyOwner(task, key); String echoResult = future.get();
@Override public void rollbackTransaction(long txId) throws BagriException { logger.trace("rollbackTransaction.enter; current txId: {}", this.txId); if (this.txId != txId) { throw new BagriException("Wrong transaction id: " + txId + "; current txId is: " + this.txId, BagriException.ecTransWrongState); } boolean result = false; TransactionAborter txa = new TransactionAborter(clientId, this.txId); Future<Boolean> future = execService.submitToKeyOwner(txa, clientId); try { result = future.get(); this.txId = TX_NO; } catch (InterruptedException | ExecutionException ex) { this.txId = TX_NO; logger.error("rollbackTransaction; error getting result", ex); throw new BagriException(ex, BagriException.ecTransaction); } logger.trace("rollbackTransaction.exit; rolled back: {}", result); }
@Override public void commitTransaction(long txId) throws BagriException { logger.trace("commitTransaction.enter; current txId: {}", this.txId); if (this.txId != txId) { throw new BagriException("Wrong transaction id: " + txId + "; current txId is: " + this.txId, BagriException.ecTransWrongState); } boolean result = false; TransactionCommiter txc = new TransactionCommiter(clientId, this.txId); Future<Boolean> future = execService.submitToKeyOwner(txc, clientId); try { result = future.get(); this.txId = TX_NO; } catch (InterruptedException | ExecutionException ex) { this.txId = TX_NO; logger.error("commitTransaction; error getting result", ex); throw new BagriException(ex, BagriException.ecTransaction); } logger.trace("commitTransaction.exit; commited: {}", result); }
@Override public long beginTransaction(TransactionIsolation txIsolation) throws BagriException { logger.trace("beginTransaction.enter; current txId: {}", txId); repo.getHealthManagement().checkClusterState(); if (txId != TX_NO) { throw new BagriException("Nested client transactions are not supported", BagriException.ecTransNoNested); } TransactionStarter txs = new TransactionStarter(clientId, txIsolation); Future<Long> future = execService.submitToKeyOwner(txs, clientId); try { txId = future.get(); } catch (InterruptedException | ExecutionException ex) { logger.error("beginTransaction; error getting result", ex); throw new BagriException(ex, BagriException.ecTransaction); } logger.trace("beginTransaction.exit; returnig txId: {}", txId); return txId; }
@ManagedOperation(description="Return Document Elements") @ManagedOperationParameters({ @ManagedOperationParameter(name = "uri", description = "Document identifier")}) public CompositeData getDocumentElements(String uri) { // //docManager. DocumentStructureProvider task = new DocumentStructureProvider(null, uri, schemaManager.getRepository().getDistributionStrategy()); Future<CompositeData> result = execService.submitToKeyOwner(task, uri); try { return result.get(); } catch (InterruptedException | ExecutionException ex) { logger.error("getDocumentElements.error; ", ex); throw new RuntimeException(ex.getMessage()); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members .size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members .size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members.size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
private void doExecute(boolean onKey, boolean onMember, String[] args) { // executeOnKey <echo-string> <key> try { IExecutorService executorService = hazelcast.getExecutorService("default"); Echo callable = new Echo(args[1]); Future<String> future; if (onKey) { String key = args[2]; future = executorService.submitToKeyOwner(callable, key); } else if (onMember) { int memberIndex = Integer.parseInt(args[2]); List<Member> members = new LinkedList<Member>(hazelcast.getCluster().getMembers()); if (memberIndex >= members.size()) { throw new IndexOutOfBoundsException("Member index: " + memberIndex + " must be smaller than " + members.size()); } Member member = members.get(memberIndex); future = executorService.submitToMember(callable, member); } else { future = executorService.submit(callable); } println("Result: " + future.get()); } catch (InterruptedException e) { currentThread().interrupt(); e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
} else { owner = repo.getHazelcastClient().getPartitionService().getPartition(runKey).getOwner(); results.add(execService.submitToKeyOwner(task, runKey));