C3P0的监控
来源:互联网 发布:蜂窝网络是什么 编辑:程序博客网 时间:2024/06/05 21:15
C3P0的监控
- 博客分类:
- JAVA
JVMJDBC
C3P0作为数据库连接池的解决方案,被应用的很广泛。他对连接池监控也提供了接口。
你只需要获取要监控的datasource,就能通过c3p0提供的 com.mchange.v2.c3p0.PooledDataSource接口实现类来完成状态的查询。
官方的doc中提供了如何获取状态的例子代码:
1. DataSource ds = (DataSource) ictx.lookup( "java:comp/env/jdbc/myDataSource" );
2. // make sure it's a c3p0 PooledDataSource
3. if ( ds instanceof PooledDataSource) {
4. PooledDataSource pds = (PooledDataSource) ds; System.err.println("num_connections: " + pds.getNumConnectionsDefaultUser());
5. System.err.println("num_busy_connections: " + pds.getNumBusyConnectionsDefaultUser()); System.err.println("num_idle_connections: " + pds.getNumIdleConnectionsDefaultUser()); System.err.println(); } else System.err.println("Not a c3p0 PooledDataSource!");
从上边的代码中可以看出,只要获取了系统的datasource应用就可以知道当前连接池的状态了。
对于单个数据源的系统来说,这种方式显然是很奏效的。
但是同时我们可能面临在一个JVM上有多个C3P0数据库连接池。这个时候我们该如何处理呢?如果我们只是统计整体的一个状态,那也无需担心,但是如果我们需要对每个创建的连接池进行统计,那么就需要我们给每个C3P0连接池打上记号了。这里官方文档说可以给每个datasouce指定 dataSourceName,将来根据dataSourceName来指定我们到底要查询的是哪个数据库连接池的状态。详细参见“Using C3P0Registry to get a reference to a DataSource”,这里反复强调了各个连接池的唯一性可以通过dataSourceName来标记。
我们在编码上记住,通过指定唯一性标记来完成对C3P0连接池的辨认。以此来完成C3P0多数据源的状态统计
你只需要获取要监控的datasource,就能通过c3p0提供的 com.mchange.v2.c3p0.PooledDataSource接口实现类来完成状态的查询。
官方的doc中提供了如何获取状态的例子代码:
1. DataSource ds = (DataSource) ictx.lookup( "java:comp/env/jdbc/myDataSource" );
2. // make sure it's a c3p0 PooledDataSource
3. if ( ds instanceof PooledDataSource) {
4. PooledDataSource pds = (PooledDataSource) ds; System.err.println("num_connections: " + pds.getNumConnectionsDefaultUser());
5. System.err.println("num_busy_connections: " + pds.getNumBusyConnectionsDefaultUser()); System.err.println("num_idle_connections: " + pds.getNumIdleConnectionsDefaultUser()); System.err.println(); } else System.err.println("Not a c3p0 PooledDataSource!");
从上边的代码中可以看出,只要获取了系统的datasource应用就可以知道当前连接池的状态了。
对于单个数据源的系统来说,这种方式显然是很奏效的。
但是同时我们可能面临在一个JVM上有多个C3P0数据库连接池。这个时候我们该如何处理呢?如果我们只是统计整体的一个状态,那也无需担心,但是如果我们需要对每个创建的连接池进行统计,那么就需要我们给每个C3P0连接池打上记号了。这里官方文档说可以给每个datasouce指定 dataSourceName,将来根据dataSourceName来指定我们到底要查询的是哪个数据库连接池的状态。详细参见“Using C3P0Registry to get a reference to a DataSource”,这里反复强调了各个连接池的唯一性可以通过dataSourceName来标记。
我们在编码上记住,通过指定唯一性标记来完成对C3P0连接池的辨认。以此来完成C3P0多数据源的状态统计
0 0
- C3P0的监控
- C3P0的监控
- 应用Druid监控SQL语句的执行情况(测试数据表明,Druid性能比DBCP、C3P0、Proxool、JBoss都好)
- C3P0使用的笔记
- hibernate c3p0的配置
- c3p0的使用
- C3P0使用的笔记
- c3p0的使用
- c3p0的使用实例!
- C3p0的参数
- c3p0的用法
- C3P0的诊断
- c3p0的使用
- C3p0的参数设置
- c3p0的配置解释
- c3p0数据源的配置
- c3p0 的详细配置
- C3P0 的 maxStatements 问题
- codeblocks使用cppcheck检查代码
- c# wince 下获取当前输入法状态2
- Android SDK开发包国内下载地址
- 怎样写一个存储过程类来实现C#中对存储过程的调用
- unix/linux编程实践教程------execve, execlp, execvp, execle比较笔记
- C3P0的监控
- vs2010程序调试,错误处理
- ksh 数组
- spring声明式事务处理(使用jdbc操作数据库)
- linux c语言学习笔记之守护进程
- Yappi的使用
- eclipse下用gradle 来打包Android
- 整理一下今天遇到的一些小问题
- Linux 基础命令(时间)