博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
proxool代码创建数据库连接与获取监控状态
阅读量:7090 次
发布时间:2019-06-28

本文共 3534 字,大约阅读时间需要 11 分钟。

package com.originalsoft.Test;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;/** * @author tank * @date:Apr 15, 2013 6:14:08 PM * @description: * @version : */public class DBConnection {	private static boolean initialized = false;	private static int activeCount = 0;	public static void state() throws ProxoolException{		SnapshotIF snapshot = ProxoolFacade.getSnapshot("mySqlProxool", 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;//		}	}	public static Connection getConnection() throws SQLException {		Connection connection = null;		if (!initialized) {			init();		}		connection = DriverManager.getConnection("proxool.mySqlProxool");		try {			SnapshotIF snapshot = ProxoolFacade.getSnapshot("mySqlProxool", 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;	}}

  注:

mySqlProxool为注册proxool的别名
mySqlProxool
jdbc:mysql://127.0.0.1:3306/db
com.mysql.jdbc.Driver
true
select CURRENT_DATE
90000
100
300
20
5
1200000

  

转载于:https://www.cnblogs.com/tankaixiong/archive/2013/04/16/3023390.html

你可能感兴趣的文章
Rsync远程同步,实现下行 ,上行异地备份。配置rsync+inotify实时备份。
查看>>
狼厂项目实践:通用检索框架准实时流的设计与实现
查看>>
一键LNMP安装了哪些软件?安装目录在哪?
查看>>
企业为什么需要CRM客户管理系统
查看>>
备考干货 | 一份5A学长学姐带你正经“P(ai) M(a) P(i)”的攻略
查看>>
用WAPI安全网卡享受安全的无线网络
查看>>
T-SQL 高级查询
查看>>
编程能力与编程年龄
查看>>
分享学习Python的方法有哪些?
查看>>
怎样把PDF转换成PPT?迅捷PDF转换器来助力
查看>>
PDF怎么设置全屏动画,轻松提高工作效率
查看>>
将现有的VSAN添加至新的VCenter
查看>>
Http重定向https MPM模块 HTTPd常见配置 sendfile 20190227
查看>>
keepalived+haproxy高可用
查看>>
比特币量化交易
查看>>
Python经典面试题 之 is 和 == 的区别
查看>>
DNS简介
查看>>
微信环境中如何实现点击链接自动直接跳转到手机外部默认浏览器
查看>>
dg切换操作文档
查看>>
PHP 统计数组元素个数
查看>>