请帮忙看下,有时候启动会有SDB_INVALIDARG,Invalid Argument 的报错,有时候执行应用功能会有com.sequoiadb.exception.BaseException: errorType:SDB_INVALIDSIZE,Invalid size
我们的连接池程序是下面的代码,请帮忙看下参数是否有问题
package com.zyt.core.service.impl;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.List;
import com.sequoiadb.base.CollectionSpace;
import com.sequoiadb.base.Sequoiadb;
import com.sequoiadb.base.SequoiadbDatasource;
import com.sequoiadb.base.SequoiadbOption;
import com.sequoiadb.exception.BaseException;
import com.sequoiadb.net.ConfigOptions;
public class SequoiaDbSessionFactory {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(SequoiaDbSessionFactory.class);
private String HOST;
private String USERNAME = "";
private String PASSWORD = "";
private String CS_NAME;
private int CONNTIMEOUT = 500;
private int TIMEOUT = 500;
private List hosts;
public SequoiaDbSessionFactory() {
logger.info("HOST ="+HOST);
logger.info("CS_NAME ="+CS_NAME);
}
public Sequoiadb getSequoiadb() throws BaseException, InterruptedException {
if (logger.isDebugEnabled()) {
logger.debug("getSequoiadb() - start"); //$NON-NLS-1$
}
SequoiadbDatasource ds = null;
ArrayList urls = new ArrayList();
ConfigOptions nwOpt = new ConfigOptions(); // 定义连接选项
SequoiadbOption dsOpt = new SequoiadbOption(); // 定义连接池选项
urls.add(HOST);
for (String h : hosts) {
logger.info("增加配机:"+h);
urls.add(h);
}
nwOpt.setConnectTimeout(CONNTIMEOUT); // 设置若连接失败,超时时间(ms)
nwOpt.setMaxAutoConnectRetryTime(0); // 设置若连接失败,重试次数
// 以下设置的都是 SequoiadbOption 的默认值
dsOpt.setMaxConnectionNum(500); // 设置连接池最大连接数
dsOpt.setInitConnectionNum(10); // 初始化连接池时,创建连接的数量
dsOpt.setDeltaIncCount(10); // 当池中没有可用连接时,增加连接的数量
dsOpt.setMaxIdeNum(10); // 周期清理多余的空闲连接时,应保留连接的数量
dsOpt.setTimeout(5 * 1000); // 当已使用的连接数到达设置的最大连接数时(500),请求连接的等待时间。
dsOpt.setAbandonTime(10 * 60 * 1000); // 连接存活时间,当连接空闲时间超过连接存活时间,将被连接池丢弃
dsOpt.setRecheckCyclePeriod(1 * 60 * 1000); // 清除多余空闲连接的周期
dsOpt.setRecaptureConnPeriod(10 * 60 * 1000); // 检测并取回异常地址的周期
ds = new SequoiadbDatasource(urls, USERNAME, PASSWORD, nwOpt, dsOpt); // 创建连接池
Sequoiadb returnSequoiadb = ds.getConnection();
if (logger.isDebugEnabled()) {
logger.debug("getSequoiadb() - end"); //$NON-NLS-1$
}
return returnSequoiadb;
}
public CollectionSpace getCollectionSpace() throws BaseException,
InterruptedException {
if (logger.isDebugEnabled()) {
logger.debug("getCollectionSpace() - start"); //$NON-NLS-1$
}
CollectionSpace returnCollectionSpace = getSequoiadb().getCollectionSpace(CS_NAME);
if (logger.isDebugEnabled()) {
logger.debug("getCollectionSpace() - end"); //$NON-NLS-1$
}
return returnCollectionSpace;
}
public String getHOST() {
return HOST;
}
public void setHOST(String hOST) {
HOST = hOST;
}
public String getUSERNAME() {
return USERNAME;
}
public void setUSERNAME(String uSERNAME) {
USERNAME = uSERNAME;
}
public String getPASSWORD() {
return PASSWORD;
}
public void setPASSWORD(String pASSWORD) {
PASSWORD = pASSWORD;
}
public String getCS_NAME() {
return CS_NAME;
}
public void setCS_NAME(String cS_NAME) {
CS_NAME = cS_NAME;
}
public int getCONNTIMEOUT() {
return CONNTIMEOUT;
}
public void setCONNTIMEOUT(int cONNTIMEOUT) {
CONNTIMEOUT = cONNTIMEOUT;
}
public int getTIMEOUT() {
return TIMEOUT;
}
public void setTIMEOUT(int tIMEOUT) {
TIMEOUT = tIMEOUT;
}
public List getHosts() {
return hosts;
}
public void setHosts(List hosts) {
this.hosts = hosts;
}
}