Example #1
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);
  }