关于WebLogic中连接池的问题
来源:互联网 发布:yum卸载 保留依赖 编辑:程序博客网 时间:2024/05/01 05:54
weblogic 中连接池的配置没有什么可说的,按照教程一步步配下来一般都是能成功通过的,但在java中调用时如果由于取得连接的方法不当,就有可能出现当连接数达到一定数量时便取不到连接的情况,出现如下异常:
weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool JDBC Data Source-4 to allocate to applications, please increase the size of the pool and retry..
经过分析发现造成这种原因的关键之一是对DataSuorce的管理不当造成的,因为weblogic和DataSuorce都能对连接池进行管理,如果DataSuorce在取得连接时需要得到新的DataSuorce的话,我们实际不是连接不够用,而是DataSuorce不够用,发现这个问题后,把DataSuorce置为静态或采用单态方式能有效的解决上面的异常问题,以下是实例代码:
package com.youlin.tool;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import java.io.*;
import java.util.*;
public class DBConnection {
private static DataSource ds;
private static String PROPERTIES_NAME = "database.properties";
static {
InputStream is = DBConnection.class
.getResourceAsStream(DBConnection.PROPERTIES_NAME);
Properties property = new Properties();
try {
property.load(is);
} catch (IOException e1) {
e1.printStackTrace();
}
String jndiurl = property.getProperty("jndi.url");
String jndiname = property.getProperty("jndi.name");
System.out.println("jndiurl=" + jndiurl + "/njndiname=" + jndiname);
Connection con = null; // 连接对象
Context ctx = null;
Hashtable ht = new Hashtable();
try {
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, jndiurl);
// 创建一个初始上下文环境
ctx = new InitialContext(ht);
// 查询weblogic server的JNDI名字服务,JNDI 会指明访问的数据源所在位置。DataSource
// 数据源与配置的名字是一样
DataSource ds = (DataSource) ctx.lookup(jndiname);
// 利用DataSource调用getConnection()方法,获取数据库的配置信息。
con = ds.getConnection();
if (con == null) {
System.out.println("数据库连接失败");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
ctx.close();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
public Connection getConnection(String properties) throws Exception {
return ds.getConnection();
}
/**
* 关闭数据库连接
*
* @param conn
*/
public void closeAll(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void closeAll(Connection conn, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeAll(Connection conn, Statement sta, ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (sta != null) {
sta.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
DBConnection dbcon = new DBConnection();
Connection con = null;
Statement stm = null;
ResultSet rs = null;
try {
con = dbcon.getConnection(dbcon.PROPERTIES_NAME);
stm = con.createStatement();
String sqlstr = "select count(*) re from kjks_stu"; // 书写SQL语句
rs = stm.executeQuery(sqlstr); // 执行SQL语句,返回查询结果
while (rs.next()) {
System.out.print(rs.getString("re"));
System.out.print("/t");
System.out.print("/n");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
dbcon.closeAll(con, stm, rs);
}
}
}
------------
database.properties
------------
jndi.url=t3://localhost:7001
jndi.name=jndi/kjks
------------------------
经100线程的并发测试,没有发现异常,问题得到解决。
- 关于WebLogic中连接池的问题
- 下午调试的几个关于weblogic连接池的问题
- weblogic中设置MySQL连接池的问题与方法
- Weblogic 配置MySQL连接池的问题
- WebLogic中建立Informix连接池,并解决中文问题
- WebLogic中建立Informix连接池,并解决中文问题
- 关于在ECLIPSE中配置weblogic的问题总结:
- 关于weblogic连接池爆满的原因和处理
- weblogic下配置连接池遇到的问题
- 分析weblogic数据库线程池无可用连接的问题
- jstack诊断weblogic连接池满的问题
- WebLogic连接SQL-Server2000的“版本问题”
- 通过JNDI连接weblogic的一些问题
- 通过JNDI连接weblogic的一些问题
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- J2EE 关于WebLogic下应用使用URL.openConnection获取连接返回 HttpsURLConnection与SOAPHttpsURLConnection的问题
- weblogic中设置:自动检查连接池中的连接是否有效,并重建失效的连接
- weblogic中JDBC连接数据库的几个问题
- 面向对象设计原则
- 解析#pragma指令
- pku 2115 C Looooops(解模线性方程)
- 数据的修改
- 一个qt文章比较多的牛人:暗金装备
- 关于WebLogic中连接池的问题
- Grep学习笔记
- not in 优化
- 全面提升你的程序效率之细说 bitmapdata
- MYSQl left join 联合查询效率分析
- 如何使用BHO定制你的Internet Explorer浏览器
- rocsky.com域名丢了,这个用户名也变得没有了意义
- Labelmx条码软件接口版调用例程
- 非阻塞文件I/O