控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】
轉載于:https://www.cnblogs.com/pony/archive/2008/08/12/1266143.html
總結
以上是生活随笔為你收集整理的控Proxool连接池的活动连接变化情况的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我来告诉你为什么中国民营企业管理失败的原
- 下一篇: 梦到小舅子结婚什么预兆