哪里有好用的链接池程序?

hrlin 2004-09-09 05:14:05
我用的是db2数据库,写jsp程序。因为websphere用的人不是很多,所以为了做到通用,不想用websphere自带的链接池程序,想用第三方的链接数据库的程序。请问,哪里能下载到性能不错的第三方链接池程序?谢谢!
...全文
131 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
viano 2004-09-10

to : 回复人:hrlin(无花)

每 2 妙 点击 那就没有问题

这段程序写的时间比较长了,是我有空时候写的,一般的应用足够了

回复
hrlin 2004-09-10
to aloe617(高) :websphere的确很不好用,我都受够了,所以想换掉。但我用的db2数据库,不知道weblogic能否与db2搭配?

to viano(我爱十三妹子) :我连续进行了一段时间的访问量统计,最高的时候,是每秒2次点击。程序当然都是连数据库的,不知这样的量算大还是小?你给的程序我会试试的,谢谢。
回复
bluesky35 2004-09-09
http://community.csdn.net/Expert/topic/3352/3352743.xml?temp=.5436212
回复
viano 2004-09-09

那样看你的应用程序 负载大不大

要是不大 其实连接池很好写的!(估计不好用但是完全可以)


package com.west100;

import java.io.*;
import java.sql.*;
import java.util.Date;
import java.util.*;



public class ConnManager {


//private static String Driver = "数据库驱动";
private static String Url = "你的url";
private static String Login = "数据库用户名";
private static String Pass = "密码";
//private Connection conn;
//private Statement stmt;
//private PreparedStatement pstmt;
private int minConn = 1;
private int maxConn = 20;
PrintWriter loger=null;
String logFile ="F:/project/movie/WebModule/log/log.txt";

static int connAmount = 0; //现有的连接个数
static Stack stack = new Stack();
Vector vector = new Vector();

private static ConnManager instance;

public static synchronized ConnManager getInstance()
{
if(instance == null)
{
instance = new ConnManager();
}
else
{
System.out.println(instance);
}
return instance;
}


private ConnManager()
{
try
{
loger = new PrintWriter(new FileWriter(logFile, true), true);
}
catch(IOException e)
{
System.err.println("无法打开日志文件"+logFile);
loger = new PrintWriter(System.err);
}


try
{
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
for(int i=0; i<minConn; i++)
{
Connection conn = newConnection();
if(conn != null)
{
stack.push(newConnection());
}
}

}
catch(Exception e)
{
System.out.println("ConnectionManager: driver not loaded");
//conn = null;
}


}

private void log(String msg)
{
loger.println(new Date() + ":" + msg);
}


public synchronized void freeConnection(Connection con)
{
stack.push(con);
notifyAll();
log("归还一个连接到连接池!");
}


public synchronized Connection getConnection()
{
Connection conn = null;


// System.out.println(" ======================="+stack.size());

if(stack.size() > 0)
{
System.out.println("从连接池取出一个连接");
System.out.println("现在可用的连接总数1. 为:" + stack.size());
conn = (Connection) stack.pop();
System.out.println("现在可用的连接总数2. 为:" + stack.size());

}
if(stack.size() < maxConn)
{
conn = newConnection();
}
else if(stack.size() >= maxConn)
{
try
{
System.out.println("等待连接");
wait(100000);
return getConnection();
}
catch(InterruptedException e)
{
System.out.println("发生异常" + e.getMessage());
}
}
return conn;
}

private synchronized Connection newConnection()
{
Connection conn = null;
try
{
if(stack.size() < maxConn)
{
conn = DriverManager.getConnection(Url, Login, Pass);
connAmount++;
if(conn != null)
{
System.out.println("创建一个连接成功:" + connAmount + " " + conn);
System.out.println("连接池创建一个连接 !");
}
return conn;
}
else
{
try
{
log("等待 连接中 :");
wait(10000);
return newConnection();
}
catch(InterruptedException e)
{
log("等待 超时 !");
return null;
}
}
}
catch(SQLException e)
{
log("无法创建连接: " + Url);
return null;
}

//return conn;
}
}
回复
aloe617 2004-09-09
ebsphere不是很好用!你可以用WEBLOGIC里带的连接池,现在没有几个人能写好连接池,问题很多的。
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-09-09 05:14
社区公告
暂无公告