public RequestOptions(ResponseMode mode, long timeout, boolean use_anycasting, RspFilter rsp_filter, Message.Flag ... flags) { this(mode, timeout, use_anycasting, rsp_filter,(short)0); flags(flags); }
public RequestOptions setFlags(Message.Flag ... flags) {return flags(flags);} public RequestOptions flags(Message.Flag ... flags) {
void sendMessages(int num) throws Exception { long start, stop; int show=num/10; if(show <=0) show=1; start=System.currentTimeMillis(); RequestOptions opts=new RequestOptions(ResponseMode.GET_ALL, TIMEOUT).flags(Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC); byte[] data="bla".getBytes(); Buffer buf=new Buffer(data, 0, data.length); System.out.println("-- sending " + num + " messages"); for(int i=1; i <= num; i++) { disp.castMessage(null, buf, opts); if(i % show == 0) System.out.println("-- sent " + i); } stop=System.currentTimeMillis(); printStats(stop-start, num); }
public void configChange(ConfigChange config_change) { // 5 String attr_name=config_change.attr_name; try { Object attr_value=config_change.getValue(); Field field=Util.getField(this.getClass(), attr_name); Util.setField(field, this, attr_value); System.out.println(config_change.attr_name + "=" + attr_value); log_interval=num_msgs / 10; receive_log_interval=num_msgs * Math.max(1, members.size()) / 10; send_options.mode(sync? ResponseMode.GET_ALL : ResponseMode.GET_NONE); if(oob) send_options.flags(Message.Flag.OOB); } catch(Exception e) { System.err.println("failed applying config change for attr " + attr_name + ": " + e); } }
public void run() { try { latch.await(); } catch(InterruptedException e) { e.printStackTrace(); } RequestOptions opts=new RequestOptions(ResponseMode.GET_ALL, 0); if(oob) opts.flags(Message.Flag.OOB); if(dont_bundle) opts.flags(Message.Flag.DONT_BUNDLE); MethodCall call=new MethodCall((short)1, id); for(;;) { int num=sent_msgs.getAndIncrement(); if(num > num_msgs) break; if(num > 0 && num % print == 0) System.out.printf("."); try { long start=System.nanoTime(); disp.callRemoteMethod(target, call, opts); long time=System.nanoTime()-start; avg.add(time); } catch(Exception e) { e.printStackTrace(); } } } }
public void run() { try { barrier.await(); } catch(Exception e) { e.printStackTrace(); return; } for(;;) { try { int tmp=num_msgs_sent.incrementAndGet(); if(tmp > num_msgs) break; long new_seqno=seqno.getAndIncrement(); invokeRpc(handleData, send_options, local_addr, payload, new_seqno, num_threads == 1); if(tmp % log_interval == 0) System.out.println("++ sent " + tmp); if(tmp == num_msgs) { // last message, send SENDING_DONE message RequestOptions opts=RequestOptions.ASYNC().flags(Message.Flag.RSVP); invokeRpc(sendingDone, opts, local_addr); } } catch(Exception e) { } } } }
try { if(result_collector != null) invokeRpc(result, result_collector, RequestOptions.SYNC().flags(Message.Flag.RSVP), local_addr, tmp_result);
public void start(String props, String name) throws Exception { this.props=props; this.name=name; StringBuilder sb=new StringBuilder(); sb.append("\n\n----------------------- MPerf -----------------------\n"); sb.append("Date: ").append(new Date()).append('\n'); sb.append("Run by: ").append(System.getProperty("user.name")).append("\n"); sb.append("JGroups version: ").append(Version.description).append('\n'); System.out.println(sb); channel=new JChannel(props); channel.setName(name); disp=new RpcDispatcher(channel, this).setMembershipListener(this).setMethodLookup(id -> METHODS[id]) .setMarshaller(new MperfMarshaller()); send_options.mode(sync? ResponseMode.GET_ALL : ResponseMode.GET_NONE); if(oob) send_options.flags(Message.Flag.OOB); channel.connect("mperf"); local_addr=channel.getAddress(); JmxConfigurator.registerChannel(channel, Util.getMBeanServer(), "jgroups", "mperf", true); // send a CONFIG_REQ to the current coordinator, so we can get the current config Address coord=channel.getView().getCoord(); if(coord != null && !local_addr.equals(coord)) invokeRpc(configReq, coord, RequestOptions.ASYNC().flags(Message.Flag.RSVP), local_addr); }
protected void configChange(String name) throws Exception { int tmp=Util.readIntFromStdin(name + ": "); ConfigChange change=new ConfigChange(name, tmp); invokeRpc(configChange, RequestOptions.SYNC().flags(Message.Flag.RSVP), change); }
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);
initiator=true; results.reset(getSenders()); invokeRpc(clearResults,RequestOptions.SYNC().flags(Message.Flag.RSVP)); invokeRpc(startSending, RequestOptions.ASYNC(), local_addr); break; case 's': ConfigChange change=new ConfigChange("sync", !sync); invokeRpc(configChange, RequestOptions.SYNC().flags(Message.Flag.RSVP), change); break; case 'o': change=new ConfigChange("oob", !oob); invokeRpc(configChange, RequestOptions.SYNC().flags(Message.Flag.RSVP), change); break; case 'x':
/** Sends a request to a single destination */ public void sendUnicastRequest(Address dest, Buffer data, Request req, RequestOptions opts) throws Exception { if(transport == null) { if(log.isWarnEnabled()) log.warn("transport is not available !"); return; } Header hdr=new Header(Header.REQ, 0, this.corr_id); Message msg=new Message(dest, data).putHeader(this.corr_id, hdr) .setFlag(opts.flags()).setTransientFlag(opts.transientFlags()); if(req != null) { // sync RPC long req_id=REQUEST_ID.getAndIncrement(); req.requestId(req_id); hdr.requestId(req_id); // set the request-id only for *synchronous RPCs* if(log.isTraceEnabled()) log.trace("%s: invoking unicast RPC [req-id=%d] on %s", local_addr, req_id, msg.dest()); requests.putIfAbsent(req_id, req); // make sure no view is received before we add ourself as a view handler (https://issues.jboss.org/browse/JGRP-1428) req.viewChange(view); if(rpc_stats.extendedStats()) req.start_time=System.nanoTime(); } else // async RPC rpc_stats.add(RpcStats.Type.UNICAST, dest, false, 0); transport.down(msg); }
try { RequestOptions options=new RequestOptions(ResponseMode.GET_NONE, 0) .flags(Message.Flag.OOB, Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC); disp.callRemoteMethods(null, new MethodCall(QUIT_ALL), options); break;
.setFlag(opts.flags()).setTransientFlag(opts.transientFlags());
public RequestOptions(ResponseMode mode, long timeout, boolean use_anycasting, RspFilter rsp_filter, Message.Flag ... flags) { this(mode, timeout, use_anycasting, rsp_filter,(short)0); flags(flags); }
public RequestOptions setFlags(Message.Flag ... flags) {return flags(flags);} public RequestOptions flags(Message.Flag ... flags) {
protected void configChange(String name) throws Exception { int tmp=Util.readIntFromStdin(name + ": "); ConfigChange change=new ConfigChange(name, tmp); invokeRpc(configChange, RequestOptions.SYNC().flags(Message.Flag.RSVP), change); }