现有系统是 sqlserver2k + resin 用odbc和jdbc连接的,系统使用人数大概在4~5百人左右,平时在线也是这么多,现在想用连接池来做,首次用连接池做有哪些地方要注意的还不是很清楚,请专家给出好的方案和建议,分数不够明天在加,回答的好分加倍!
解决方案 »
- 郁闷我一天的错误,JSTL1.2+TOMCAT5.5+myeclipse6.0
- 使用gb2312 出现乱码
- 打印的时候表行数据断掉,请高手发个处理的代码,急请高手帮忙,谢谢!
- 提示出错::[Microsoft][ODBC 驱动程序管理器] 无效的游标状态 !非常急~
- 为什么跳转到这个页是空白的,急
- 使用struts的validate验证字段required,为什么把其他的验证脚本也加到页面里了
- [求助]Struts中JSP页面表单数据取得(日文系统)
- JSP+JAVABEAN这个数据库操作怎么就是插入不进去了
- 从web服务器上下载文件,无法弹出保存对话框
- 听说HTTP是无状态协议,请问什么叫无状态协议?
- jsp中string类型转换成datetime类型
- 为什么我总是出现org.apache.jasper.JasperException: Unable to compile class for JSP错误呢?
tomcat默认是commons-dbcp,据说低版本性能也有问题。不知道resin默认实现的dataSource用的是什么库了。其实用连接池很简单,配置上dataSource,从里边直接取Connection,用完就关。
把之前所有的getConnection()部分换成dataSource就好了。至于如何调优就是门学问了,要根据自己的情况配置最大链接,最小链接什么的。
如果你的性能瓶颈确实在建立数据库连接这一步,那么快使用数据源吧,任何一个都可以,先看看效果!我一直用DBCP 没发现大问题,cp 也不错,无所谓的。
下面这个是用 C3P0 的,仅供参考。import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;import com.bao.config.Config;
import com.mchange.v2.c3p0.ComboPooledDataSource;/**
* C3P0连接池,数据库连接工厂
*/
public class ConnectionFactory { private ConnectionFactory(){
} private static ComboPooledDataSource ds = null; static {
try {
Logger log = Logger.getLogger("com.mchange");
log.setLevel(Level.WARNING);
ds = new ComboPooledDataSource();
// 设置JDBC的Driver类
ds.setDriverClass(Config.getDriverClass());
// 设置JDBC的URL
ds.setJdbcUrl(Config.getJdbcUrl());
// 设置数据库的登录用户名
ds.setUser(Config.getDatabaseUsername());
// 设置数据库的登录用户密码
ds.setPassword(Config.getDatabasePassword());
// 设置连接池的最大连接数
ds.setMaxPoolSize(Config.getMaxPoolSize());
// 设置连接池的最小连接数
ds.setMinPoolSize(Config.getMinPoolSize());
// 设置连接的失效时间(秒)
ds.setMaxIdleTime(Config.getMaxIdleTime());
} catch (PropertyVetoException e) {
e.printStackTrace();
}
}
public static Connection getConnection() {
Connection con = null;
try {
con = ds.getConnection();
} catch (SQLException e1) {
e1.printStackTrace();
}
return con;
}
// C3P0 end
}
配置多点查询缓存就好了目前连接池是一方面 会很有效对于你的系统另外可以手动写些缓存 辅助性
import com.mchange.v2.c3p0.ComboPooledDataSource;
这是什么类?哪可下载的还是自己写的?
我们的系统用的就是commons-dbcp
没问题的你要考虑优化你们的数据库的
tomcat-5.5.17\conf\Catalina\localhost下的 工程.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="myconnection"
type="javax.sql.DataSource"
password="oa"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=oadb"
maxActive="4"/>
</Context>
不過關鍵是你要用的好
我用的就很差