Example #1
0
    public void run() {
      double gtps, itps;
      int n, ret;
      long start_time, end_time;

      //
      // Open the database files.
      //
      int err;
      try {
        DatabaseConfig config = new DatabaseConfig();
        config.setTransactional(true);
        adb = dbenv.openDatabase(null, "account", null, config);
        bdb = dbenv.openDatabase(null, "branch", null, config);
        tdb = dbenv.openDatabase(null, "teller", null, config);
        hdb = dbenv.openDatabase(null, "history", null, config);
      } catch (DatabaseException dbe) {
        TpcbExample.errExit(dbe, "Open of db files failed");
      } catch (FileNotFoundException fnfe) {
        TpcbExample.errExit(fnfe, "Open of db files failed, missing file");
      }

      start_time = (new Date()).getTime();
      for (txns = n = ntxns, failed = 0; n-- > 0; ) if ((ret = txn()) != 0) failed++;
      end_time = (new Date()).getTime();
      if (end_time == start_time) end_time++;

      System.out.println(
          getName()
              + ": "
              + (long) txns
              + " txns: "
              + failed
              + " failed, "
              + TpcbExample.showRounded((txns - failed) / (double) (end_time - start_time), 2)
              + " TPS");

      try {
        adb.close();
        bdb.close();
        tdb.close();
        hdb.close();
      } catch (DatabaseException dbe2) {
        TpcbExample.errExit(dbe2, "Close of db files failed");
      }
    }
Example #2
0
 public void set_amount(long value) {
   TpcbExample.set_int_in_array(data, 12, value);
 }
Example #3
0
 public long get_amount() {
   return TpcbExample.get_int_in_array(data, 12);
 }
Example #4
0
 public void set_tid(long value) {
   TpcbExample.set_int_in_array(data, 8, value);
 }
Example #5
0
 public long get_tid() {
   return TpcbExample.get_int_in_array(data, 8);
 }
Example #6
0
 public void set_balance(long value) {
   TpcbExample.set_int_in_array(data, 4, value);
 }
Example #7
0
 public long get_balance() {
   return TpcbExample.get_int_in_array(data, 4);
 }
Example #8
0
  public static void main(String[] argv) throws java.io.IOException {
    File home = new File("TESTDIR");
    int accounts = ACCOUNTS;
    int branches = BRANCHES;
    int tellers = TELLERS;
    int history = HISTORY;
    int threads = 1;
    int mpool = 0;
    int ntxns = 0;
    boolean iflag = false;
    boolean txn_no_sync = false;
    long seed = (new GregorianCalendar()).get(Calendar.SECOND);

    for (int i = 0; i < argv.length; ++i) {
      if (argv[i].equals("-a")) {
        // Number of account records
        if ((accounts = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-b")) {
        // Number of branch records
        if ((branches = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-c")) {
        // Cachesize in bytes
        if ((mpool = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-f")) {
        // Fast mode: no txn sync.
        txn_no_sync = true;
      } else if (argv[i].equals("-h")) {
        // DB  home.
        home = new File(argv[++i]);
      } else if (argv[i].equals("-i")) {
        // Initialize the test.
        iflag = true;
      } else if (argv[i].equals("-n")) {
        // Number of transactions
        if ((ntxns = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-S")) {
        // Random number seed.
        seed = Long.parseLong(argv[++i]);
        if (seed <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-s")) {
        // Number of history records
        if ((history = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-T")) {
        // Number of threads
        if ((threads = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-t")) {
        // Number of teller records
        if ((tellers = Integer.parseInt(argv[++i])) <= 0) invarg(argv[i]);
      } else if (argv[i].equals("-v")) {
        // Verbose option.
        verbose = true;
      } else {
        usage();
      }
    }

    rand.setSeed((int) seed);

    // Initialize the database environment.
    // Must be done in within a try block.
    //
    TpcbExample app = null;
    try {
      app =
          new TpcbExample(home, accounts, branches, tellers, history, mpool, iflag || txn_no_sync);
    } catch (Exception e1) {
      errExit(e1, "initializing environment failed");
    }

    if (verbose)
      System.out.println(
          (long) accounts
              + " Accounts, "
              + String.valueOf(branches)
              + " Branches, "
              + String.valueOf(tellers)
              + " Tellers, "
              + String.valueOf(history)
              + " History");

    if (iflag) {
      if (ntxns != 0) usage();
      app.populate();
    } else {
      if (ntxns == 0) usage();
      app.run(ntxns, threads);
    }

    // Shut down the application.

    try {
      app.close();
    } catch (DatabaseException dbe2) {
      errExit(dbe2, "appexit failed");
    }

    System.exit(0);
  }