Refine search
String line=Util.readStringFromStdin(": "); if(line.startsWith("help")) { System.out.println("unicast <text> // unicasts to all members of local view\n" + System.out.println("invoking method in " + dest + ": "); try { Object rsp=disp.callRemoteMethod(dest, call, new RequestOptions(ResponseMode.GET_ALL, RPC_TIMEOUT)); System.out.println("rsp from " + dest + ": " + rsp); SiteMaster dest=new SiteMaster(site_master); System.out.println("invoking method in " + dest + ": "); Object rsp=disp.callRemoteMethod(dest, call, new RequestOptions(ResponseMode.GET_ALL, RPC_TIMEOUT)); System.out.println("rsp from " + dest + ": " + rsp); new RequestOptions(ResponseMode.GET_ALL, RPC_TIMEOUT).anycasting(true)); for(Map.Entry<Address,Rsp<Object>> entry: rsps.entrySet()) { Address sender=entry.getKey(); Rsp<Object> rsp=entry.getValue(); if(rsp.wasUnreachable()) System.out.println("<< unreachable: " + sender); else System.out.println("<< " + rsp.getValue() + " from " + sender); rsps.entrySet().stream().forEach( entry -> { Rsp<Object> val=entry.getValue(); System.out.println("<< " + val.getValue() + " from " + entry.getKey()); });
public void receiveResponse(Object response_value, Address sender, boolean is_exception) { Rsp<T> rsp; if(isDone() || (rsp=rsps.get(sender)) == null) return; RspFilter rsp_filter=options.rspFilter(); lock.lock(); try { if(!rsp.wasReceived()) { if(!(rsp.wasSuspected() || rsp.wasUnreachable())) num_received++; if(rsp_filter == null || rsp_filter.isAcceptable(response_value, sender)) { if(is_exception && response_value instanceof Throwable) rsp.setException((Throwable)response_value); else rsp.setValue((T)response_value); num_valid++; lock.unlock();
public String toString() { StringBuilder sb=new StringBuilder(); if(value != null) { if(!hasException()) sb.append("value=").append(value); else sb.append("exception=").append(getException()); sb.append(", "); } sb.append("received=").append(wasReceived()).append(", suspected=").append(wasSuspected()); if(wasUnreachable()) sb.append(" (unreachable)"); return sb.toString(); } }
/** * Returns the results from non-suspected members that are not null. */ public List<T> getResults() { return values().stream().filter(rsp -> rsp.wasReceived() && rsp.getValue() != null) .collect(() -> new ArrayList<>(size()), (list,rsp) -> list.add(rsp.getValue()), (l,r) -> {}); }
/** Marks all responses with an exception (unless a response was already marked as done) */ public void transportClosed() { boolean changed=false; lock.lock(); try { for(Map.Entry<Address, Rsp<T>> entry: rsps.entrySet()) { Rsp<T> rsp=entry.getValue(); if(rsp != null && !(rsp.wasReceived() || rsp.wasSuspected() || rsp.wasUnreachable())) { rsp.setException(new IllegalStateException("transport was closed")); num_received++; changed=true; } } if(changed && responsesComplete()) { complete(this.rsps); corrDone(); } } finally { lock.unlock(); } }
if(view == null || rsps == null || rsps.isEmpty()) return; lock.lock(); try { for(Map.Entry<Address,Rsp<T>> entry: rsps.entrySet()) { Address mbr=entry.getKey(); if(rsp.setSuspected()) { if(!(rsp.wasReceived() || rsp.wasUnreachable())) num_received++; changed=true; lock.unlock();
public void siteUnreachable(String site) { lock.lock(); try { for(Map.Entry<Address,Rsp<T>> entry : rsps.entrySet()) { Address member=entry.getKey(); if(!(member instanceof SiteAddress)) if(addr.getSite().equals(site)) { Rsp<T> rsp=entry.getValue(); if(rsp != null && rsp.setUnreachable()) { lock.lock(); try { if(!(rsp.wasReceived() || rsp.wasSuspected())) num_received++; lock.unlock();
RspList<Object> quotes=disp.callRemoteMethods(null, "getQuote", new Object[]{stock_name}, new Class[]{String.class}, new RequestOptions(ResponseMode.GET_ALL, 10000)); for(Rsp<Object> rsp : quotes.values()) { Object quote=rsp.getValue(); if(quote == null || quote instanceof Throwable) continue; disp.callRemoteMethods(null, "setQuote", new Object[]{stock_name, val}, new Class[]{String.class, Float.class}, new RequestOptions(ResponseMode.GET_FIRST, 0)); listbox.removeAll(); showMsg("Getting all stocks:"); RspList<Object> rsp_list=disp.callRemoteMethods(null, "getAllStocks", null, null, new RequestOptions(ResponseMode.GET_ALL, 5000)); for(Rsp rsp : rsp_list.values()) { Object obj=rsp.getValue(); if(obj == null || obj instanceof Throwable) continue;
RspList<Results> responses=null; try { RequestOptions options=new RequestOptions(ResponseMode.GET_ALL, 0); options.flags(Message.Flag.OOB, Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC); responses=disp.callRemoteMethods(null, new MethodCall(START), options); for(Map.Entry<Address,Rsp<Results>> entry: responses.entrySet()) { Address mbr=entry.getKey(); Rsp<Results> rsp=entry.getValue(); Results result=rsp.getValue(); if(result != null) { total_reqs+=result.num_gets + result.num_puts; double throughput=total_reqs_sec * BUFFER.length; System.out.println("\n"); System.out.println(Util.bold(String.format("Throughput: %,.2f reqs/sec/node (%s/sec)\n" + "Roundtrip: gets %s, puts %s\n", total_reqs_sec, Util.printBytes(throughput), print(avg_gets, print_details), print(avg_puts, print_details)))); System.out.println("\n\n");
private <T> List<T> processResponseList(RspList<T> rspList, String serviceName, String methodName, Object[] args, boolean trace) { List<T> result = new ArrayList<T>(rspList.size()); if (rspList != null) { for (Rsp<T> response : rspList.values()) { // Only include successful received responses if (response.hasException()) { Throwable e = response.getException(); ClusteringImplLogger.ROOT_LOGGER.debugf(e, "%s invocation failure from %s: %s(%s)", serviceName, response.getSender(), methodName, (args != null) ? Arrays.asList(args) : ""); } else if (response.wasReceived()) { result.add(response.getValue()); } else if (trace) { ClusteringImplLogger.ROOT_LOGGER.tracef("Ignoring non-received response: %s", response); } } } return result; }
List<Object> retval = new ArrayList<Object>(rsps.size()); for (Rsp rsp : rsps.values()) if (rsp.wasSuspected() || !rsp.wasReceived()) if (rsp.wasSuspected()) ex = new SuspectException("Suspected member: " + rsp.getSender()); ex = new TimeoutException("Replication timeout for " + rsp.getSender()); Object value = rsp.getValue(); if (value instanceof Exception && !(value instanceof ReplicationException)) if (trace) log.trace("Recieved exception'" + value + "' from " + rsp.getSender()); throw (Exception) value;
private boolean containsOnlyNulls(RspList l) { for (Rsp r : l.values()) { if (r.getValue() != null || !r.wasReceived() || r.wasSuspected()) return false; } return true; }
List<Object> retval = new ArrayList<Object>(rsps.size()); for (Address dest : dests) Rsp rsp = rsps.get(dest); if (rsp == null || (rsp.wasSuspected() && !rsp.wasReceived())) + ", this member has probably left the cluster.")); else if (!rsp.wasReceived()) retval.add(new RPCException("Replication timeout for " + rsp.getSender() + ", rsp=" + rsp)); Object value = rsp.getValue(); if (value instanceof RPCException) LOG.trace("Recieved exception'" + value + "' from " + rsp.getSender(), (RPCException)value);
if (!response.wasReceived()) { if(log.isDebugEnabled()) log.debug("Response from node " + response.getSender() + " was not received."); if (response.wasSuspected()) { if(log.isDebugEnabled()) log.debug("Node " + response.getSender() + " was suspected."); Object object = response.getValue(); throw new ChannelException("Node " + response.getSender() + " is faulty."); throw new ChannelException("Node " + response.getSender() + " generated fault (class " + faultClass + ')');
if(rsp_list.isEmpty()) { if(log.isWarnEnabled()) log.warn(" response list is empty"); return null; if(rsp_list.size() > 1) { if(log.isWarnEnabled()) log.warn("response list contains more that 1 response; returning first response !"); rsp=(Rsp)rsp_list.elementAt(0); if(rsp.wasSuspected()) { throw new SuspectedException(dest); if(!rsp.wasReceived()) { throw new TimeoutException(); return rsp.getValue();
/** * Returns the results from non-suspected members that are not null. */ public Vector getResults() { Vector ret=new Vector(); Rsp rsp; Object val; for(Iterator it=values().iterator(); it.hasNext();) { rsp=(Rsp)it.next(); if(rsp.wasReceived() && (val=rsp.getValue()) != null) ret.addElement(val); } return ret; }
@SuppressWarnings({"unchecked"}) public List<Response> sendSynchronous(ResponseCommand command, long timeout) throws MessageException { List<Response> values = new ArrayList<Response>(); List<Address> addresses = helper.getRuntimeAddressesInZone(zoneName, domainChannel.getView()); Vector<Address> dest = new Vector<Address>(addresses); byte[] payload = helper.serialize(command); Message message = new Message(null, domainChannel.getAddress(), payload); RequestOptions options = new RequestOptions(ResponseMode.GET_ALL, timeout); RspList responses; try { responses = domainDispatcher.castMessage(dest, message, options); } catch (Exception e) { throw new MessageException("Error sending message", e); } Set<Map.Entry<Address, Rsp<?>>> set = responses.entrySet(); for (Map.Entry<Address, Rsp<?>> entry : set) { Object val = entry.getValue().getValue(); assert val instanceof byte[] : " expected byte[] for response"; Response response = (Response) helper.deserialize((byte[]) val); values.add(response); } return values; }
rsp_list=disp.callRemoteMethods(null, "getQuote", new Object[]{stock_name}, new String[]{String.class.getName()}, GroupRequest.GET_ALL, 10000); for(int i=0; i < rsp_list.size(); i++) { Rsp rsp=(Rsp)rsp_list.elementAt(i); Object obj=rsp.getValue(); if(obj == null || obj instanceof Throwable) continue; disp.callRemoteMethods(null, "setQuote", new Object[]{stock_name, val}, new Class[]{String.class, Float.class}, GroupRequest.GET_FIRST, 0); listbox.removeAll(); showMsg("Getting all stocks:"); rsp_list=disp.callRemoteMethods(null, "getAllStocks", (Object[])null, (Class[])null, GroupRequest.GET_ALL, 5000); for(int i=0; i < rsp_list.size(); i++) { Rsp rsp=(Rsp)rsp_list.elementAt(i); Object obj=rsp.getValue(); if(obj == null || obj instanceof Throwable) continue;