예제 #1
0
  public static void usage() {
    System.err.println(
        "usage: "
            + RepConfig.progname
            + " -h home -l host:port [-CM][-r host:port][-R host:port]\n"
            + "  [-a all|quorum][-b][-n nsites][-p priority][-v]");

    System.err.println(
        "\t -h home (required; h stands for home directory)\n"
            + "\t -l host:port (required; l stands for local)\n"
            + "\t -C or -M (optional; start up as client or master)\n"
            + "\t -r host:port (optional; r stands for remote; any number "
            + "of these\n"
            + "\t    may be specified)\n"
            + "\t -R host:port (optional; R stands for remote peer; only "
            + "one of\n"
            + "\t    these may be specified)\n"
            + "\t -a all|quorum (optional; a stands for ack policy)\n"
            + "\t -b (optional; b stands for bulk)\n"
            + "\t -n nsites (optional; number of sites in replication "
            + "group; defaults\n"
            + "\t    to 0 to try to dynamically compute nsites)\n"
            + "\t -p priority (optional; defaults to 100)\n"
            + "\t -v (optional; v stands for verbose)\n");

    System.exit(1);
  }
예제 #2
0
 private static void usage() {
   System.err.println(
       "usage: TpcbExample [-fiv] [-a accounts] [-b branches]\n"
           + "                   [-c cachesize] [-h home] [-n transactions]\n"
           + "                   [-T threads] [-S seed] [-s history] [-t tellers]");
   System.exit(1);
 }
예제 #3
0
 public static void errExit(Exception err, String s) {
   System.err.print(progname + ": ");
   if (s != null) {
     System.err.print(s + ": ");
   }
   System.err.println(err.toString());
   System.exit(1);
 }
예제 #4
0
  public void populateTable(Database dbp, int start_id, int balance, int nrecs, String msg) {
    Defrec drec = new Defrec();

    DatabaseEntry kdbt = new DatabaseEntry(drec.data);
    kdbt.setSize(4); // sizeof(int)
    DatabaseEntry ddbt = new DatabaseEntry(drec.data);
    ddbt.setSize(drec.data.length); // uses whole array

    try {
      for (int i = 0; i < nrecs; i++) {
        kdbt.setRecordNumber(start_id + (int) i);
        drec.set_balance(balance);
        dbp.putNoOverwrite(null, kdbt, ddbt);
      }
    } catch (DatabaseException dbe) {
      System.err.println("Failure initializing " + msg + " file: " + dbe.toString());
      System.exit(1);
    }
  }
예제 #5
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);
  }
예제 #6
0
 private static void invarg(String str) {
   System.err.println("TpcbExample: invalid argument: " + str);
   System.exit(1);
 }