java网站,关于jdbc连接池的问题报错,紧急,请大神指点!!!解决不了又要被老板骂了。 javajdbc内存溢出异常exception 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得是连接池的问题,java.sql.SQLException: We are already in the process of making 11 connections and the number of simultaneous builds has been throttled to 10大神们来帮帮我!!! 楼主用的是oracle吗?是不是驱动版本的问题啊 <simultaneousBuildThrottle>69</simultaneousBuildThrottle> <minimum-connection-count>20</minimum-connection-count> <maximum-connection-count>200</maximum-connection-count>这个设置的不合理,改为<simultaneousBuildThrottle>20</simultaneousBuildThrottle> <minimum-connection-count>5</minimum-connection-count> <maximum-connection-count>50</maximum-connection-count> 我用的mysql,谢谢,没看到proxool.xml里的驱动吧? 5楼的朋友什么意思?上代码?我用的是jdbc 连接池,每次获取连接后我都会在方法下面关闭conn,pst,rs的。 还是上代码吧!!!这是用连接池获取连接的类:package cn.com.rocan.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtil { public static Connection getConn() throws SQLException { Connection connection = null; connection = DriverManager.getConnection("proxool.jxw_db"); return connection; }}这是Dao查询的:/** * 查询所有数据 * * @param tableName * 表明 * @param fields * 字段名["name,pass,desc"] * @param whereStr * 条件[id=1 and name='user1'] * @return 结果 List<Map<String, Object>>类型。Map的Key为大写字母 * @throws Exception * 异常统一向页面抛 */ public List<Map<String, Object>> select(String tableName, String fields, String whereStr) throws Exception { Map<String, Object> map = null; List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); // String str[] = fields.split(","); StringBuilder sql = new StringBuilder(); Connection conn = null; PreparedStatement pst = null; ResultSet rs = null; // DatabaseUtil database = new DatabaseUtil(); conn = DBUtil.getConn(); sql.append("select ").append(fields).append(" from ").append(tableName); if ((whereStr != null) && (!"".equals(whereStr))) { sql.append(" where ").append(whereStr); } pst = conn.prepareStatement(sql.toString()); rs = pst.executeQuery(); // System.out.println("[SQL]:" + sql); log.debug("[SQL]:" + sql); // rs = DatabaseUtil.executeQuery(sql.toString(), pst, rs, conn); if (rs != null && (!"".equals(rs.toString()))) { ResultSetMetaData rsmd = rs.getMetaData(); while (rs.next()) { map = new HashMap<String, Object>(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { map.put(rsmd.getColumnName(i).toUpperCase(), rs .getObject(rsmd.getColumnName(i))); } list.add(map); } } if (rs != null) { rs.close(); rs = null; } if (pst != null) { pst.close(); pst = null; } if (conn != null) { conn.close(); conn = null; } return list; } 换个连接池试试,会不会是BUG 设置一个 <house-keeping-sleep-time>50000</house-keeping-sleep-time>会不会好些 第一个异常 数据库连接创建过快 第二个就没有数据库连接了数据库连接 无法自动释放 或者 释放速度没有你 添加数据库连接速度快。要不是要求单例性能的话 可以考虑 等比例夸大连接数 还有就是 首页一下要走 19个list的sql 是不是 设计的有问题 java 如何读取MP3比特率 、时间长度等信息 问一个Quartz时间表达式的问题 struts2的自定义标签与freemarker标签能不能整合? JSP问题include javascipt问题:关闭模态对话框,启动新的窗口 浏览器发送请求怪象 JSP乱码问题,请高手帮忙. 关于<input type="text">和<html:text>的问题 怎么在weblogic8.1下实现虚拟主机? 用JBOSS开发EJB需要哪些环境变量?? 求大神,报错org.hibernate.hql.ast.QuerySyntaxException linux 搭建vsftpd服务器
大神们来帮帮我!!!
是不是驱动版本的问题啊
<maximum-connection-count>200</maximum-connection-count>这个设置的不合理,改为
<simultaneousBuildThrottle>20</simultaneousBuildThrottle>
<minimum-connection-count>5</minimum-connection-count>
<maximum-connection-count>50</maximum-connection-count>
这是用连接池获取连接的类:package cn.com.rocan.db;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DBUtil { public static Connection getConn() throws SQLException {
Connection connection = null;
connection = DriverManager.getConnection("proxool.jxw_db");
return connection;
}
}这是Dao查询的:/**
* 查询所有数据
*
* @param tableName
* 表明
* @param fields
* 字段名["name,pass,desc"]
* @param whereStr
* 条件[id=1 and name='user1']
* @return 结果 List<Map<String, Object>>类型。Map的Key为大写字母
* @throws Exception
* 异常统一向页面抛
*/
public List<Map<String, Object>> select(String tableName, String fields,
String whereStr) throws Exception {
Map<String, Object> map = null;
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
// String str[] = fields.split(",");
StringBuilder sql = new StringBuilder();
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
// DatabaseUtil database = new DatabaseUtil(); conn = DBUtil.getConn();
sql.append("select ").append(fields).append(" from ").append(tableName);
if ((whereStr != null) && (!"".equals(whereStr))) {
sql.append(" where ").append(whereStr);
}
pst = conn.prepareStatement(sql.toString());
rs = pst.executeQuery();
// System.out.println("[SQL]:" + sql);
log.debug("[SQL]:" + sql);
// rs = DatabaseUtil.executeQuery(sql.toString(), pst, rs, conn);
if (rs != null && (!"".equals(rs.toString()))) {
ResultSetMetaData rsmd = rs.getMetaData(); while (rs.next()) {
map = new HashMap<String, Object>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
map.put(rsmd.getColumnName(i).toUpperCase(), rs
.getObject(rsmd.getColumnName(i)));
}
list.add(map);
}
}
if (rs != null) {
rs.close();
rs = null;
}
if (pst != null) {
pst.close();
pst = null;
}
if (conn != null) {
conn.close();
conn = null;
}
return list;
}
会不会好些
数据库连接 无法自动释放 或者 释放速度没有你 添加数据库连接速度快。
要不是要求单例性能的话 可以考虑 等比例夸大连接数
还有就是 首页一下要走 19个list的sql 是不是 设计的有问题