void start(String props, int num_msgs, int size) throws Exception {
Message msg;
Protocol transport;
byte[] buf=new byte[size];
Address local_addr;
NakAckHeader hdr;
ch=new JChannel(props);
ch.connect("demo");
local_addr=ch.getLocalAddress();
Vector members=new Vector();
members.add(local_addr);
view=new View(local_addr, 0, members);
ch.down(new Event(Event.BECOME_SERVER));
ch.down(new Event(Event.VIEW_CHANGE, view));
tp=PERF_TP.getInstance();
Vector protocols=ch.getProtocolStack().getProtocols();
transport=(Protocol)protocols.lastElement();
System.out.println("sending " + num_msgs + " up the stack");
tp.setExpectedMessages(num_msgs); // this starts the time
for(int i=0; i < num_msgs; i++) {
msg=new Message(null, local_addr, buf);
hdr=new NakAckHeader(NakAckHeader.MSG, i);
msg.putHeader("NAKACK", hdr);
transport.up(new Event(Event.MSG, msg));
if(i % 10000 == 0) {
System.out.println("passed up " + i + " messages");
}