Package com.sleepycat.je.util

Source Code of com.sleepycat.je.util.DbStat

/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002-2006
*      Sleepycat Software.  All rights reserved.
*
* $Id: DbStat.java,v 1.19 2006/01/03 21:56:02 bostic Exp $
*/

package com.sleepycat.je.util;

import java.io.File;
import java.io.PrintStream;
import java.util.logging.Level;

import com.sleepycat.je.Database;
import com.sleepycat.je.DatabaseConfig;
import com.sleepycat.je.DatabaseException;
import com.sleepycat.je.DatabaseStats;
import com.sleepycat.je.DbInternal;
import com.sleepycat.je.Environment;
import com.sleepycat.je.JEVersion;
import com.sleepycat.je.StatsConfig;
import com.sleepycat.je.utilint.CmdUtil;
import com.sleepycat.je.utilint.Tracer;

public class DbStat extends DbVerify {
    private String usageString =
  "usage: " + CmdUtil.getJavaCommand(DbStat.class) + "\n" +
  "               [-V] -s database -h dbEnvHome [-v progressInterval]\n";

    private int progressInterval = 0;

    static public void main(String argv[])
  throws DatabaseException {

  DbStat stat = new DbStat();
  stat.parseArgs(argv);

  int ret = 0;
  try {
      if (!stat.stats(System.err)) {
    ret = 1;
      }
  } catch (Throwable T) {
      ret = 1;
      T.printStackTrace(System.err);
  }

  try {
      stat.env.close();
  } catch (Throwable ignored) {

      /*
       * Klockwork - ok
       * Don't say anything about exceptions here.
       */
  }
  System.exit(ret);
    }

    protected DbStat() {
    }

    public DbStat(Environment env, String dbName) {
  super(env, dbName, false);
    }

    protected void printUsage(String msg) {
  System.err.println(msg);
  System.err.println(usageString);
  System.exit(-1);
    }

    protected void parseArgs(String argv[]) {

  int argc = 0;
  int nArgs = argv.length;
  while (argc < nArgs) {
      String thisArg = argv[argc++];
      if (thisArg.equals("-V")) {
    System.out.println(JEVersion.CURRENT_VERSION);
    System.exit(0);
      } else if (thisArg.equals("-h")) {
    if (argc < nArgs) {
        envHome = new File(argv[argc++]);
    } else {
        printUsage("-h requires an argument");
    }
      } else if (thisArg.equals("-s")) {
    if (argc < nArgs) {
        dbName = argv[argc++];
    } else {
        printUsage("-s requires an argument");
    }
      } else if (thisArg.equals("-v")) {
    if (argc < nArgs) {
        progressInterval = Integer.parseInt(argv[argc++]);
        if (progressInterval <= 0) {
      printUsage("-v requires a positive argument");
        }
    } else {
        printUsage("-v requires an argument");
    }
      }
  }

  if (envHome == null) {
      printUsage("-h is a required argument");
  }

  if (dbName == null) {
      printUsage("-s is a required argument");
  }
    }

    public boolean stats(PrintStream out)
  throws DatabaseException {

  try {
      openEnv();

      Tracer.trace(Level.INFO, DbInternal.envGetEnvironmentImpl(env),
       "DbStat.stats of " + dbName + " starting");

      DatabaseConfig dbConfig = new DatabaseConfig();
      dbConfig.setReadOnly(true);
      dbConfig.setAllowCreate(false);
      DbInternal.setUseExistingConfig(dbConfig, true);
      Database db = env.openDatabase(null, dbName, dbConfig);

      StatsConfig statsConfig = new StatsConfig();
      if (progressInterval > 0) {
    statsConfig.setShowProgressInterval(progressInterval);
    statsConfig.setShowProgressStream(out);
      }

      DatabaseStats stats = db.getStats(statsConfig);
      out.println(stats);

      db.close();
      Tracer.trace(Level.INFO, DbInternal.envGetEnvironmentImpl(env),
       "DbStat.stats of " + dbName + " ending");
  } catch (DatabaseException DE) {
      return false;
  }
  return true;
    }
}
TOP

Related Classes of com.sleepycat.je.util.DbStat

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.