📄 bklyenv.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 + -