proxool连接池:Attempt to refer to a unregistered pool by its alias 'XXX'(XXX连接池的别名)

Hibernate下使用main方法测试proxool连接池连接成功与否

Attempt to refer to a unregistered pool by its alias 'XXX'

proxool连接池问题解决方案:

Hibernate 下使用proxool连接池,遇到了Attempt to refer to a unregistered pool by its alias 'kuwuff'

这个问题,搞了我N久,所有有可能错误的地方都测试过了,还是报错。都要疯掉了,网上也有好多人现到了同样的问题,大家在配置连接池的时候都是按正常步骤做的,服务器启动的时候也看到了自己在proxool.xml中配置的连接池加载成功,可测试的时候就是会出现上面找不到连接池的问题,我在用连接池的时候是在自己写的java文件中调用出现的问题,就是写了一个main方法,然后用"java Application"运行,就会报Attempt to refer to a unregistered pool by its alias ‘kuwuff’,但是在JSP页面里并不会报错,其实问题的关键就是在这里,连接池的应用本来就是要通过服务器调用的,如果你在java文件中调用,就没有涉及到服务器,这样就会报错了!

如果你在java文件中用下面这种方式加载连接池是可用的:

Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");

Connection conn = DriverManager.getConnection("proxool.别名:driver:url","用户名","密码");//别名可以随意按自己意愿或习惯定义就好,但一定要写


但是这种方式会每次运行的时候加载连接池,用完就会释放。所以大家用连接池的时候,不要在java文件中去测试连接池是否可用,应该写一个jsp页面,问题就此解决!

Hibernate 下也是如此。



<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body><br>
<%

Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
try{
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver").newInstance();
conn=DriverManager.getConnection("proxool.LocalProxool");
String sql="select * from test";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()){
out.println("ID ="+rs.getString(1));
out.println("<br/>");
out.println("ID ="+rs.getString(2));
out.println("<br/>");
out.println("ID ="+rs.getString(3));
out.println("<br/>");
}

}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(conn!=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}

%>

</body>
</html>





http://hi.baidu.com/kuwuff_xiaoyang/blog/item/5c46cd54ccfd046f853524b4.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
proxool.0.9.1基础上做了修改。 改jar名称为:proxool-0.9.1.1,主要修改为以下3点: 1.解决不能Unregister jdbc driver的内存泄露问题。 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [org.logicalcobwebs.proxool.ProxoolDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 十二月 02, 2013 8:19:43 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE: The web application [/xxx] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. 2.解决housekeeper内存泄露问题 3.解决与spring配合时,只能在spring的定义中以bean方式加载proxool的问题。(使用servlet方式加载也可以,只是在启动时报错) 加载方式修改为: xmlFile /WEB-INF/conf/proxool.xml org.logicalcobwebs.proxool.configuration.ListenerConfigurator 与spring配合使用时,本加载需要放在spring前面 org.logicalcobwebs.proxool.configuration.ListenerConfigurator org.springframework.web.context.ContextLoaderListener 4.修正了proxool在多线程环境下的的错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值