Ume*_*yat 5 java hibernate c3p0
我尝试使用池化数据源来记录有关数据库连接池的信息,即最大池大小,当前号.正在使用的连接,繁忙的连接等.我使用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) {
}
Run Code Online (Sandbox Code Playgroud)
然后我将所需的信息记录为:
Logger.write(LoggerConstant.DEBUG, " Connections in use: "+dataSource.getNumConnectionsAllUsers()+" , Busy Connections: "+dataSource.getNumBusyConnectionsAllUsers() +" , Idle Connections: "+ dataSource.getNumIdleConnectionsAllUsers()+" , Unclosed Orphaned Connections: "+ dataSource.getNumUnclosedOrphanedConnectionsAllUsers(), methodName);
Run Code Online (Sandbox Code Playgroud)
我想知道,如果它是一个正确的方法来实现我的目标?
另外,我对dataSource.getNumConnectionsAllUsers() 和其他函数(我正在使用)的确切返回有什么困惑.javadoc中没有可用的描述.
是否有任何描述或可以在线提供教程,我可以从中了解有关这些特定功能的更多信息?
环境:Java,Hibernate,C3P0,MySQL
尝试阅读 PooledDataSource java doc。http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/PooledDataSource.html
PooledDataSource.getXXXXUser() 是监视和管理数据源的正确方法
仅当以下情况时,此接口中的功能才会令人感兴趣
出于管理原因,您希望密切跟踪应用程序正在使用的所有连接的数量和状态;
解决管理数据源时遇到的问题,该数据源的客户端是编码不良的应用程序,会泄漏连接,但您无权修复这些问题;
javadoc 中也有关于方法名称的描述。
请参阅方法名称...部分
该接口中的许多方法具有三种变体:
第一个变体利用为默认用户维护的池——通过调用无参数 getConnection() 创建的连接,第二个变体允许您跟踪通过调用 getConnection( username,password ) 创建的池,第三个变体提供聚合信息或对所有池执行操作。
| 归档时间: |
|
| 查看次数: |
2775 次 |
| 最近记录: |