java - 关于 C3P0 合并数据源的问题

标签 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) {
    }

然后我将所需信息记录为:

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

最佳答案

尝试阅读 PooledDataSource java 文档。 http://www.mchange.com/projects/c3p0/apidocs/com/mchange/v2/c3p0/PooledDataSource.html

PooledDataSource.getXXXXUser() 是监控和管理数据源的正确方式

此界面中的功能只有在

  1. 出于管理原因,您喜欢密切跟踪 您的应用程序正在使用的所有连接的数量和状态;

  2. 解决在管理 DataSource 时遇到的问题,该 DataSource 的客户端是编码不当的应用程序,会泄漏连接,但您无权修复这些问题;

  3. 解决底层 jdbc 驱动程序/DBMS 系统不可靠时可能出现的问题。 .

还有在javadoc中有关于方法名的描述。

请参阅方法名称 ... 部分

此接口(interface)中的许多方法具有三种变体:

  1. <方法名> DefaultUser()
  2. <方法名>(字符串用户名,字符串密码)
  3. <方法名>AllUsers()

第一个变体使用为默认用户维护的池——通过调用无参数 getConnection() 创建的连接,第二个变体让您跟踪通过调用 getConnection(username, password) 创建的池,以及第三种变体提供聚合信息或对所有池执行操作。

关于java - 关于 C3P0 合并数据源的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524420/

相关文章:

Spring JPA 具有 native 查询和数据投影,将错误的列映射到投影接口(interface)中

java - 使用c3p0.idle_test_period。

java - 使用 Java 从文本文件中一次读取 x 行文本

java - OpenCV-Java:VideoCapture读取框架与USB摄像机卡在一起

java - Spring 4 hibernate 4 JPA LazyInitializationException : failed to lazily initialize a collection of role

java - 在 JodaTime 中使用 Hibernate 注释的问题

java - 在 libGDX 中是否有 JavaFX 的 PathTransition 等价物?

java - 如何用 Java 制作响应式 MVP Swing GUI?

java - 从 com.mchange.v2.async.ThreadPoolAsynchronousRunner 停止 tomcat 7 时发出警告

java - MySQL连接和hibernate c3p0设置,8小时后超时?