问题标签 [apache-commons-dbcp]

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 投票
3 回答
2078 浏览

java - 此错误与操作系统或数据库有关吗?

我有一个java程序,在正常工作几个小时后给我一个错误......这些程序曾经在我们早期的服务器上正常工作,它有windows server 2003现在我们已经升级到具有更高配置和新安装的windows server 2008 SQL Server 。是否有任何我遗漏的 db 设置,或者是否有任何我遗漏的操作系统设置?

我收到的例外是:

错误::

org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory,原因:网络错误

IOException:没有可用的缓冲区空间(达到最大连接数?):连接

0 投票
2 回答
5530 浏览

java - 如何查看/监控数据库池中的实时数据库连接?

我们为我们的 java 应用程序使用数据库连接池。它是一个在tomcat 下运行的Web 应用程序。

我想在创建和销毁池中查看实时连接。有人可以帮忙吗?

更新:我们使用的是 Oracle 11g。我们使用 DDConnectionBroker 库进行连接池。

0 投票
1 回答
3174 浏览

java - 使用 MySQL 在 Tomcat 上合并 PreparedStatement

将 Tomcat 与 MySQL 一起使用时,Tomcat DataSource 配置中的 poolPreparedStatements 设置(我相信来自 DBCP)和 Connector/J cachePrepStmts设置之间有什么关系?什么是最佳配置?

0 投票
2 回答
8193 浏览

apache - 关于 org.apache.commons.dbcp.BasicDataSource 的问题

我修复了一些与我们使用 BasicDataSource 的方式相关的错误,虽然我理解其中的一部分,但我仍然有一些问题没有得到解答:)

问题: 数据库失败后,应用程序无法自动连接到数据库。

应用程序使用org.apache.commons.dbcp.BasicDataSource 类作为 TCP 连接池,用于与 Oracle db 的 JDBC 连接。

修复: 经过一些研究,我发现在 BasicDataSource 中未设置 testOnBorrow 和 testOnreturn。我提供了验证查询来测试连接。这解决了问题

池中的最大连接数设置为 1

我的理解: 连接池会将连接移交给应用程序。我认为正在发生的是应用程序在数据库崩溃时神奇地将坏集合返回到池中。现在,由于池不知道它是否是一个错误的连接,它会在下次需要它时将相同的连接移交给应用程序,导致应用程序不会自动重新连接到数据库。

现在,在修复之后.. 每当错误的连接返回到连接池时,由于我在上面所做的修复,它将被丢弃并且不会再次使用。

现在我知道 BasicDataSource 在提供给应用程序之前包装了连接,这样每当应用程序说 con.close ..BasicDataSource 就会知道该连接不再被使用..它将负责将连接返回到池或丢弃等

未回答的问题: 但是我不明白是什么让应用程序在连接断开时神奇地将连接返回到连接池[请注意,当连接不正常退出时不会调用 con.close 方法] BasicDataSource 无法知道连接已关闭或存在?有人可以指点我为此编写代码吗?

我的整体理解连接为什么修复工作?

0 投票
2 回答
6430 浏览

java - 数据库连接池库的最佳选择是什么?(c3p0 问题)

我有使用 hirbernate 的重载 java 应用程序。而且我曾经用作连接池 DBCP,但它存在连接丢失的问题。比我切换到c3p0。但现在它有时会阻塞线程,我不知道为什么。像这儿:

' 我的堆栈跟踪转储显示该线程阻塞了我的所有其他线程,锁定 <0x00007fa7286d9728>,因此在一段时间内服务器被完全阻塞。我不确定这个线程运行了多长时间,如果一个线程长时间阻塞所有其他线程,或者这个线程消耗的时间非常长,但结果是,我的系统被完全阻塞并且非常慢。我google了很多,但我不知道如何解决这个问题。我需要池来关闭连接并尽快完成踩踏。我应该使用其他连接池吗?对我来说,这个池库绝对有必要 100% 保存,没有死锁、生命锁、饥饿,即使它比其他库慢一点。

谢谢你的帮助

0 投票
2 回答
743 浏览

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

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

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

0 投票
2 回答
325 浏览

java - 运行缓慢的查询

我们有一个查询需要 3 小时才能完成。这在以前不是问题。之前,调用这个查询的代码部署在weblogic上,使用后者自己的连接池管理器。

现在由于进程占用大量内存,我们将这段代码拉出来,让它在自己的堆空间上运行。调用查询的请求是通过 jms 发出的。我还注意到我们使用的连接池管理器是使用默认设置的 dbcp(最大连接数 = 8,最小连接数 =0)。jms 客户端是多线程的。

当我们通过接口(TOAD)执行查询时,只需要 2 秒,所以从这里我已经排除了“指责”数据库的可能性。

我想知道我可以从这里采取哪些步骤来找到瓶颈。也许与连接池有关?

0 投票
2 回答
2074 浏览

java - Spring DBCP 连接池 | 配置重试次数

有没有办法在 Spring - DBCP 连接池中指定“重试”计数?

如果第一次没有连接,我想至少尝试3次。

0 投票
6 回答
52911 浏览

java - tomcat-dbcp 与 commons-dbcp

这两个连接池库之间似乎存在很多混淆。我想知道哪个更好(如果有的话)?

以下是我想提出的一些观点......有人可以验证吗?

  1. Tomcat DBCP:使用默认的 tomcat-dbcp.jar,它将出现在您的 tomcat/lib 目录中。您的 web-inf/lib 中不需要commons-dbcp.jar 或 commons-pool.jar 库。DB 驱动程序应该放在 tomcat/lib 中。

  2. Tomcat DBCP 数据源类是org.apache.tomcat.dbcp.dbcp.BasicDataSource. Commons DBCP 数据源类是org.apache.commons.dbcp.BasicDataSource.

  3. 可以在此博客中找到这两者之间的唯一区别。不知道信息是否正确。

  4. Tomcat 官方文档清楚地提到,大多数类刚刚被重新命名和重新打包。

所以问题是:使用哪一个,哪一个更好

0 投票
1 回答
3937 浏览

java - 需要tomcat的server.xml的工厂属性吗?

我一直在 tomcat 中阅读有关 JNDI 的更多信息,并且我从多个资源中阅读了工厂属性是必需的。他们说它通常应该是“ org.apache.tomcat.jdbc.pool.DataSourceFactory ”。然而,我经常看到这样的事情——

那么在这种情况下tomcat是做什么的呢?它是否默认为“ org.apache.tomcat.jdbc.pool.DataSourceFactory ”?