Mercurial > hg > blitz_condensed
view test/org/dancres/blitz/test/LargeTxn.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line source
package org.dancres.blitz.test; import org.dancres.blitz.remote.LocalSpace; import org.dancres.blitz.remote.BlitzServiceImpl; import net.jini.space.JavaSpace; import net.jini.core.transaction.Transaction; import net.jini.core.transaction.server.ServerTransaction; import net.jini.core.entry.Entry; import net.jini.core.lease.Lease; public class LargeTxn { public static void main(String[] anArgs) throws Exception { LocalSpace myLocalSpace = new LocalSpace(new TxnGatewayImpl()); JavaSpace mySpace = myLocalSpace.getProxy(); TxnMgr myMgr = new TxnMgr(1, myLocalSpace); ServerTransaction tx = myMgr.newTxn(); int myTotalEntries = 100; if (anArgs.length == 1) myTotalEntries = Integer.parseInt(anArgs[0]); long myStart = System.currentTimeMillis(); for (int i = 0; i < myTotalEntries; i++) mySpace.write(new DummyEntry(Integer.toString(i)), null, Lease.FOREVER); displayDuration("Initial load", myStart, System.currentTimeMillis()); try { myStart = System.currentTimeMillis(); for (int i = 0; i < myTotalEntries; i++) { Entry myResult = mySpace.take(new DummyEntry(Integer.toString(i)), tx, 100); if (myResult == null) throw new RuntimeException("Lost entry: " + i); } displayDuration("Takes", myStart, System.currentTimeMillis()); myStart = System.currentTimeMillis(); for (int i = 0; i < myTotalEntries; i++) mySpace.write(new DummyEntry(Integer.toString(i)), tx, Lease.FOREVER); displayDuration("Writes", myStart, System.currentTimeMillis()); myStart = System.currentTimeMillis(); tx.commit(); displayDuration("Commit", myStart, System.currentTimeMillis()); myLocalSpace.destroy(); Thread.sleep(5000); } catch(Exception e){ System.out.println("Tx failed"); e.printStackTrace(System.err); myMgr.abort(tx.id); } } private static void displayDuration(String aPhase, long aStart, long anEnd) { System.out.println(aPhase + ": " + (anEnd - aStart)); } }