⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bklyenv.java

📁 短信开发用于文件交换处理转发的类模块
💻 JAVA
字号:
package com.pub.berkeleydb;

import java.io.*;
import java.util.*;

import org.apache.log4j.*;
import com.sleepycat.je.*;

/**
 * <p>Title: SmsSystem</p>
 *
 * <p>Description: SmsSystem</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: Raywirless</p>
 *
 * @author Swan
 * @version 1.0
 */
public class BklyEnv {
  public BklyEnv() {
    try {
      jbInit();
    }
    catch (Throwable ex) {
      ex.printStackTrace();
    }
  }

  private static Logger log = Logger.getLogger(BklyEnv.class);
  private Environment _env;
  private List _dbOpened = new Vector();

  public int open(String path) {
    return open(path, false, false, true, true, true);
  }

  public int open(String path, boolean mustExist, boolean readonly,
                  boolean trans, boolean wns, boolean tns) {
    try {
      if (!createPath(path)) {
        return -1;
      }

      EnvironmentConfig envCfg = new EnvironmentConfig();

      envCfg.setReadOnly(readonly);
      envCfg.setAllowCreate(!mustExist);
      envCfg.setTransactional(trans);
      envCfg.setTxnWriteNoSync(wns);
//      envCfg.setCachePercent(5);
//      envCfg.setCacheSize(98304 * 10);

      _env = new Environment(new File(path), envCfg);
      _env.getMutableConfig().setTxnNoSync(tns);
      EnvironmentStats envStats=_env.getStats(null);
      long cacheMisses = envStats.getNCacheMiss(); 
      System.out.println("cacheMisses : " + cacheMisses);
      //new CheckPointer().start();
    }
    catch (Throwable err) {
      log.error(null, err);
      _env = null;
      return -1;
    }
    return 0;
  }

  public void addDatabase(BklyDatabase db) {
    synchronized (_dbOpened) {
      if (db != null && !_dbOpened.contains(db)) {
        _dbOpened.add(db);
      }
    }
  }

  public void delDatabase(BklyDatabase db) {
    synchronized (_dbOpened) {
      if (db != null) {
        _dbOpened.remove(db);
      }
      if(_dbOpened.isEmpty())
       try{ _env.close();}catch(Throwable err){log.error(null,err);}
    }
  }

  public Environment getOriginEnv() {
    return _env;
  }

  // Close the environment
  public void close() {
    Iterator it = _dbOpened.iterator();
    while (it.hasNext()) {
      BklyDatabase db = (BklyDatabase) it.next();
      db.close();
      it.remove();
    }
    try {
      if (_env != null) {
        _env.close();
        _env = null;
      }
    }
    catch (Throwable dbe) {
      log.error(null, dbe);
    }
  }

  static public boolean createPath(String path) {

    int sepPos = 0, new_;
    java.io.File sPath = null;

    if (null == path) {
      return false;
    }

    do {
      new_ = path.indexOf(java.io.File.separator, sepPos);
      if (sepPos > 0 && new_ < 0) {
        new_ = path.length();
      }
      if (new_ > 0 && new_ <= sepPos) {
        break;
      }
      sepPos = new_;
      if (sepPos > 0) {
        sPath = new File(path.substring(0, sepPos));
        if (!sPath.isDirectory()) {
          if (!sPath.mkdir()) {
            log.error("mkdir " + sPath.toString() + " return FALSE.");
            return false;
          }
        }
      }
      if (sepPos >= 0) {
        sepPos++;
      }
    }
    while (sepPos > 0);

    return true;
  }

  private void jbInit() throws Exception {
  }

   /*public List getDBList() {
    return _dbOpened;
  }

    class CheckPointer extends Thread
    {
      public void run()
      {
        long start ,sleep;
        CheckpointConfig cpCfg = new CheckpointConfig();
        cpCfg.setForce(true);
        while(_env != null)
        {
          start = System.currentTimeMillis();
          log.info("checkpointer run");
          try{
            _env.compress();
            _env.cleanLog();
          _env.checkpoint(cpCfg);}catch(Exception err){}

        try{
          sleep = System.currentTimeMillis() - start;
          sleep = 120000 - sleep;
          sleep = sleep > 0 ? sleep : 0;
          Thread.sleep(sleep);
        }catch(Exception err){}
        }
      }
    }*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -