控Proxool连接池的活动连接变化情况

/Files/pony/ConnDB.txt(我用到的一个例子)

 

下面是摘抄的

 

研究了Proxool连接池的源代码后完成下面的程序,Proxool连接池的配置过程略。 网管u家u.bitscn@com

/**//*
网管bitscn_com

*@author 我为J狂 建立日期 2007-4-18
*
*/
package net.blogjava.lzqdiy;

import java.net.URL;
import java.sql.*;
import org.logicalcobwebs.proxool.ProxoolException; 网管联盟bitsCN_com
import org.logicalcobwebs.proxool.ProxoolFacade;
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
import org.logicalcobwebs.proxool.admin.SnapshotIF;

public class DBConnection
{
网管论坛bbs_bitsCN_com

    private static boolean initialized = false;

    private static int activeCount = 0;
网管联盟bitsCN_com

    public static Connection getConnection() throws SQLException
    { 网管bitscn_com
        Connection connection = null;
        if (!initialized)
        { 网管网www_bitscn_com

            init();
        }

        connection = DriverManager.getConnection("proxool.Develop");
        try
        { 网管下载dl.bitscn.com
            SnapshotIF snapshot = ProxoolFacade.getSnapshot("Develop", true);
            int curActiveCount = snapshot.getActiveConnectionCount();// 获得活动连接数
            int availableCount = snapshot.getAvailableConnectionCount();// 获得可得到的连接数 网管联盟bitsCN@com
            int maxCount = snapshot.getMaximumConnectionCount();// 获得总连接数
            if (curActiveCount != activeCount)// 当活动连接数变化时输出信息
            { 网管论坛bbs_bitsCN_com
                System.out.println("----------------------------------");
                System.out
                        .println(curActiveCount + "(active)  " + availableCount
网管联盟bitsCN_com

                                + "(available)  " + maxCount + "(max)");
                System.out.println("----------------------------------");
网管联盟bitsCN@com

                activeCount = curActiveCount;
            }

        } catch (ProxoolException e)
        {
网管bitscn_com

            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (connection != null)
        {
网管联盟bitsCN_com

            return connection;
        } else
        {
网管网www.bitscn.com

            throw new NullPointerException(
                    "Didn't get connection, which probably means that no Driver accepted the URL");
        }

    } 网管论坛bbs_bitsCN_com

    private static void init()
    {
网管论坛bbs_bitsCN_com

        String fileName = "proxool.xml";
        URL resourceURL = null;
        try
        { 网管网www.bitscn.com
            if (Thread.currentThread().getContextClassLoader() != null)
            {
网管网www.bitscn.com

                resourceURL = Thread.currentThread().getContextClassLoader()
                        .getResource(fileName);
            }

            if (resourceURL == null)
网管下载dl.bitscn.com

            {
网管联盟bitsCN_com

                resourceURL = DBConnection.class.getClassLoader().getResource(
                        fileName);
            }

            JAXPConfigurator.configure(resourceURL.getFile(), false); 网管下载dl.bitscn.com
            Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
        } catch (ClassNotFoundException e)
        { 网管u家u.bitsCN.com
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ProxoolException e)
        {
网管u家u.bitsCN.com

            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        initialized = true;
    }
中国网管论坛bbs.bitsCN.com

}

proxool.xml内容
网管联盟bitsCN@com

<?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
  <proxool>
    <alias>Develop</alias>
中国网管联盟bitsCN.com

    <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>
中国网管论坛bbs.bitsCN.com

    <driver-properties>
      <property name="user" value="lzqdiy"/>
      <property name="password" value="lzqdiy"/>
网管u家u.bitsCN.com

    </driver-properties>
    <maximum-connection-count>120</maximum-connection-count>
    <minimum-connection-count>20</minimum-connection-count>
网管网www_bitscn_com

    <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
  </proxool>
</something-else-entirely>

通过语句:Connection con=DBConnection.getConnection();来获得一个数据库连接,当活动连接数变化时向控制台输出连接信息。
【转自www.bitsCN.com】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值