/*
*@author 我为J狂 建立日期 2007-4-18
*
*/
package net.blogjava.lzqdiy;
import java.net.URL;
import java.sql.*;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import org.logicalcobwebs.proxool.admin.SnapshotIF;
public class DBConnection
{
private static boolean initialized = false;
private static int activeCount = 0;
public static Connection getConnection() throws SQLException
{
Connection connection = null;
if (!initialized)
{
init();
}
connection = DriverManager.getConnection("proxool.Develop");
try
{
SnapshotIF snapshot = ProxoolFacade.getSnapshot("Develop", true);
int curActiveCount = snapshot.getActiveConnectionCount();// 获得活动连接数
int availableCount = snapshot.getAvailableConnectionCount();// 获得可得到的连接数
int maxCount = snapshot.getMaximumConnectionCount();// 获得总连接数
if (curActiveCount != activeCount)// 当活动连接数变化时输出信息
{
System.out.println("----------------------------------");
System.out
.println(curActiveCount + "(active) " + availableCount
+ "(available) " + maxCount + "(max)");
System.out.println("----------------------------------");
activeCount = curActiveCount;
}
} catch (ProxoolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
if (connection != null)
{
return connection;
} else
{
throw new NullPointerException(
"Didn't get connection, which probably means that no Driver accepted the URL");
}
}
private static void init()
{
String fileName = "proxool.xml";
URL resourceURL = null;
try
{
if (Thread.currentThread().getContextClassLoader() != null)
{
resourceURL = Thread.currentThread().getContextClassLoader()
.getResource(fileName);
}
if (resourceURL == null)
{
resourceURL = DBConnection.class.getClassLoader().getResource(
fileName);
}
JAXPConfigurator.configure(resourceURL.getFile(), false);
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ProxoolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
initialized = true;
}
}
*@author 我为J狂 建立日期 2007-4-18
*
*/
package net.blogjava.lzqdiy;
import java.net.URL;
import java.sql.*;
import org.logicalcobwebs.proxool.ProxoolException;
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import org.logicalcobwebs.proxool.admin.SnapshotIF;
public class DBConnection
{
private static boolean initialized = false;
private static int activeCount = 0;
public static Connection getConnection() throws SQLException
{
Connection connection = null;
if (!initialized)
{
init();
}
connection = DriverManager.getConnection("proxool.Develop");
try
{
SnapshotIF snapshot = ProxoolFacade.getSnapshot("Develop", true);
int curActiveCount = snapshot.getActiveConnectionCount();// 获得活动连接数
int availableCount = snapshot.getAvailableConnectionCount();// 获得可得到的连接数
int maxCount = snapshot.getMaximumConnectionCount();// 获得总连接数
if (curActiveCount != activeCount)// 当活动连接数变化时输出信息
{
System.out.println("----------------------------------");
System.out
.println(curActiveCount + "(active) " + availableCount
+ "(available) " + maxCount + "(max)");
System.out.println("----------------------------------");
activeCount = curActiveCount;
}
} catch (ProxoolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
if (connection != null)
{
return connection;
} else
{
throw new NullPointerException(
"Didn't get connection, which probably means that no Driver accepted the URL");
}
}
private static void init()
{
String fileName = "proxool.xml";
URL resourceURL = null;
try
{
if (Thread.currentThread().getContextClassLoader() != null)
{
resourceURL = Thread.currentThread().getContextClassLoader()
.getResource(fileName);
}
if (resourceURL == null)
{
resourceURL = DBConnection.class.getClassLoader().getResource(
fileName);
}
JAXPConfigurator.configure(resourceURL.getFile(), false);
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
} catch (ClassNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ProxoolException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
initialized = true;
}
}
proxool.xml内容
<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>Develop</alias>
<driver-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.6)(PORT=1521)))(CONNECT_DATA=(SID=lzqdiy)(SERVER=DEDICATED)))
</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="lzqdiy"/>
<property name="password" value="lzqdiy"/>
</driver-properties>
<maximum-connection-count>120</maximum-connection-count>
<minimum-connection-count>20</minimum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</something-else-entirely>
<something-else-entirely>
<proxool>
<alias>Develop</alias>
<driver-url>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.6)(PORT=1521)))(CONNECT_DATA=(SID=lzqdiy)(SERVER=DEDICATED)))
</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="lzqdiy"/>
<property name="password" value="lzqdiy"/>
</driver-properties>
<maximum-connection-count>120</maximum-connection-count>
<minimum-connection-count>20</minimum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</something-else-entirely>
通过语句:Connection con=DBConnection.getConnection();来获得一个数据库连接,当活动连接数变化时向控制台输出连接信息。
相关推荐
proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解 proxool连接池配置详解
proxool连接池使用详细说明,proxool连接池使用详细说明,proxool连接池使用详细说明。
项目实用的proxool连接池配置文件,每个标签都有注释,可以直接拿来使用
-- 连接池的别名 --> <alias>DBPool</alias> - <!-- proxool只能管理由自己产生的连接 --> <driver-url>jdbc:sqlserver://localhost:1433;dataBaseName=books</driver-url> - <!-- JDBC驱动程序 --> ...
在Hibernate中配置Proxool连接池
Proxool连接池jar包Proxool连接池jar包Proxool连接池jar包
proxool 数据库连接池用户名、密码加密处理,文件里面包含可直接使用加密的jar以及相关使用说明。
proxool 连接池 tomcat模拟连接池
proxool数据库连接池实例源码,性能很不错的一个连接池,带监控功能可以方便检测数据库没有关闭的连接
ssh2注册登录案例,注解+proxool连接池+sf4j记录日志
最新,最全的proxool连接池所涉及的mysql的jar包程序
基于ssh的proxool连接池配置,希望可以帮助到想了解proxool连接池配置的朋友
Hibernate Proxool连接池配置总结及常遇问题
Spring2.5配置proxool连接池
Proxool连接池配置
Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。
proxool连接池笔记 性能较好的连接池
Proxool连接池及使用文档,参照文档,可以很快学会使用