问题标签 [c3p0]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3054 浏览

hibernate - 休眠 > 3.3 和 c3p0

由于 c3p0 似乎不再与 Hibernate 捆绑在一起(从版本 > 3.3 开始,我使用的是 Hibernate 3.6.0),我想知道如何将 c3p0 与 Hibernate 集成。

显然是旧的方法

似乎不再起作用,因为 Hibernate 不再提供 C3P0ConnectionProvider 类。我现在必须自己构建它还是集成 hibernate-c3p0-3.3.x.jar 是否安全?

注意:我使用的是裸 Hibernate,没有 Spring 等。

0 投票
2 回答
743 浏览

connection-pooling - 选择一个数据库连接池

我们想在我们的应用程序中使用一个 db 连接池,但是有很多开放的源池,如 dbcp、c3p0、proxool 等。

我不知道哪个更好,有人有经验吗?

0 投票
2 回答
1012 浏览

java - 在 jmx 中公开 c3po dataSourceName

有没有办法让 c3p0 用它的 dataSourceName 注册到 jmx?目前我的 c3p0 数据创建一个随机名称以注册到 jmx,即使它有它的 dataSourceName。例如我在春天的配置是:

0 投票
1 回答
3288 浏览

java - 从源代码构建 C3p0 时出错

我下载了源代码(v 0.9.1.2)并尝试构建它,首先从命令行,然后在 IDE 中。

我认为问题在于在 build.properties 文件中设置类路径。这是我当前的类路径。当然,我在这里尝试了各种方法,但都给出了相同的结果:

这是我得到的错误:

编辑:这是我在使用 Java 5 构建时遇到的错误:

0 投票
1 回答
729 浏览

java - c3p0 的最大连接数在 Linux 中不起作用

我有一个使用 hibernate 进行 O/R 映射的 java 应用程序,我还使用了与 hibernate 一起提供的 c3p0 连接池。数据库是甲骨文。

这是在我的hibernate.cfg.xml

这就是我获得休眠会话的方式:

但是当我SELECT * FROM V$SESSION WHERE machine='xxx';在 Oracle 中运行时,连接数可以达到 20,大于max_size.

最大连接数在 Linux 环境中不起作用,但在 Unix 和 Windows 中起作用。Linux 中的任何设置都需要调整吗?

我还怀疑某处有应用程序的缓存,就像我之前设置max_size的 20 个一样。我在 Tomcat 5.5 中运行该应用程序。但是我不知道Tomcat中有这样的应用程序缓存。

另一个信息:我正在运行 Linux 2.6.9-34.ELsmp。Red Hat Enterprise Linux AS release 4 (Nahant Update 3)

谢谢。

0 投票
2 回答
1526 浏览

mysql - 未调用 C3P0 连接池测试器

我尝试使用 C3P0 连接池测试器检查连接到 MySQL 是否正常。如果密码正确,它可以工作。但是密码可以更改,我需要让用户知道没有与 MySQL 的连接。

我想了解为什么buildSessionFactory()不启动连接测试仪。

我使用了休眠+C3P0。

这是我的配置:

设置:

我的代码中也不例外。我想说的是,由于某种原因 MySQL DB 已关闭,然后buildSessionFactory()并没有失败。正如我在论坛上读到的,这是正确的情况。但是我创建了一个 C3P0 连接测试器,它应该在每次超时时运行以检查连接状态,并让我知道与 DB 的连接是否已建立。但是在这种情况下,由于某种原因没有调用测试仪。我想了解它为什么会发生。

文档没有说明这种情况。如果这是一个错误并且应该启动测试仪,那么应该修复该问题。

这就是我所说的。

0 投票
1 回答
13373 浏览

java - Tomcat JDBC 连接池 VS c3p0 连接池

我最近遇到了这个连接池实现。

http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html

我觉得很有趣。

有人试过吗?我认为它看起来很棒,除了它不支持像 c3p0 这样的自动重试和语句缓存。

有谁知道它与c3p0相比如何?

直到现在我使用 c3p0 但我发现它在多线程环境中的连接处理有问题。与应用程序线程的数量相比,它打开了太多的连接。

谢谢。

0 投票
0 回答
1545 浏览

hibernate - 使用不同的数据源初始化 c3p0 池

,今天是个好日子!

我需要在应用程序中使用多个数据库。在 spring 配置文件中,我为单独的数据库配置了两个数据源。

因此,我配置了所有数据源,然后编写了一些简单的测试来检查 Spring 应用程序上下文加载。我开始那个测试,它运行了很长时间(110 秒)。在日志中,我可以看到池被初始化了 4 次。

试图删除数据源 - 现在日志文件中有 2 个池初始化,第一次初始化需要 4-6 秒,第二次大约需要 30-32...

有人可以给我一个提示,我该如何解决这个性能问题?

PS Mysql db 5.1,c3p0 版本 0.9.1.2(我也试过 0.9.2),Spring 3.0.4,Hibernate 3.6

编辑:我发现在我的测试中 - 应用程序上下文启动了 2 次,所以我建议这就是池被初始化 4 次而不是 2 次的原因,但我仍然有一个性能问题池,第一个数据源在 8 秒内初始化,但是第二个数据源初始化时间的池是 30-32 秒...

0 投票
1 回答
603 浏览

hibernate - 在 Tomcat 上拥有一个使用 Hibernate 和 C3p0 和数据库的线程

我正在使用 Hibernate 和 C3P0 来管理我的连接。我也有一个线程来做数据库操作。

问题是当我从tomcat取消部署我的webapp时,我的线程正确退出,但连接池仍然存在,mysql中仍然存在连接,我认为它们是由C3P0管理的。

有没有办法强制 C3P0 关闭所有这些连接?

谢谢

0 投票
2 回答
3831 浏览

java - C3P0 + MySQL:读取通信数据包时出错

许多人遇到的错误与以下消息有关:

可以在 MySQL 日志中找到。在我的例子中,数据库是通过 java 客户端使用驱动程序和众所周知的 C3P0 池在本地访问的。com.mysql.jdbc.Driver我的 MySQL 服务器配置为接受相当多的连接,并且 max_allowed_pa​​cket 值设置为 64M。这是我的 my.cnf 文件(MySQL 配置)的摘录:

我数据库中的表User具有以下简单结构:

当我INSERT使用 mysql 客户端(即mysql -u root -p)在该表中获取值时,我在日志中没有收到警告。然而,当尝试相同的 Java 端时,上述警告出现在日志中很多次!因此,在 Java 方面,我的连接是从配置如下的 C3P0 连接池中提取的:

首先准备声明:

然后参数化:

然后执行:

然后关闭准备好的语句:

并关闭 SQL 连接:

整个程序(对我来说)似乎是合法的。根据http://dev.mysql.com/doc/refman/5.0/en/communication-errors.html上的 MySQL 手册,此警告可能意味着:

客户端程序在退出前没有调用 mysql_close()。

或者那个:

客户端程序在数据传输过程中突然结束。

出于我的应用程序的目的,我使用 C3P0 使用 200 多个并行线程在此数据库中进行写入和读取,并且在检查数据实际上是否正常传输到数据库并从数据库中检索时,我没有内存泄漏。有没有其他人有类似的经历?

最后,我包括了我的 MySQL 版本以及其他可能对故障排除有用的信息: