【发布时间】:2011-09-23 04:57:11
【问题描述】:
我尝试使用池数据源来记录有关数据库连接池的信息,即最大池大小,当前编号。正在使用的连接数、繁忙的连接等。我正在使用C3P0Registry 来获取池化数据源。
PooledDataSource dataSource =null;
try{
C3P0Registry.getNumPooledDataSources();
//I am sure that I am using only one data source
Iterator<Set> connectionIterator = C3P0Registry.getPooledDataSources().iterator();
dataSource = (PooledDataSource)connectionIterator.next();
}catch (Exception e) {
}
然后我将所需信息记录为:
Logger.write(LoggerConstant.DEBUG, " Connections in use: "+dataSource.getNumConnectionsAllUsers()+" , Busy Connections: "+dataSource.getNumBusyConnectionsAllUsers() +" , Idle Connections: "+ dataSource.getNumIdleConnectionsAllUsers()+" , Unclosed Orphaned Connections: "+ dataSource.getNumUnclosedOrphanedConnectionsAllUsers(), methodName);
我想知道这是否是实现我目标的正确方法?
另外,我对dataSource.getNumConnectionsAllUsers() 和其他功能(我正在使用)究竟返回什么感到困惑。 javadoc 中没有可用的描述。
是否有任何描述或在线教程,我可以从中了解有关这些特定功能的更多信息?
环境:Java、Hibernate、C3P0、MySQL
【问题讨论】:
-
+1 C3P0 documentation 很好,但在某些方面非常缺乏 javadocs。我经历了同样的情况,最终只是用报告方法来解决它。我很想看看是否有有用的答案。