问题标签 [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 投票
0 回答
841 浏览

jdbc - 在 Java 应用程序中使用 dbcp 连接池设置 DB2 Client Audit 信息

我正在使用 JNDI 在 Tomcat 5.5 上开发 Java 应用程序,以使用 JDBC 3.0 驱动程序和 zOS 上的 DB2 8 以及 LUW 上的 DB2 9 连接到共享 dbcp 连接池。在我的应用程序中,我使用 org.springframework.jndi.JndiObjectFactoryBean 获取数据源并将其输入 org.springframework.jdbc.core.simple.SimpleJdbcTemplate 以运行查询。到目前为止,这是一个相当不错的解决方案,但我们的 DBA 要求我们为审计 SQL 性能提供更好的粒度。目前,所有 portlet 和应用程序都使用相同的连接池连接到数据库,区分应用程序的唯一方法是将运行的 SQL 与每个应用程序中的 SQL 进行匹配。我们不想为每个应用程序创建单独的池。DB2 从驱动程序的 DB2Connection 上提供了几种方法,允许我们设置审计信息。

setDB2ClientApplicationInformation
setDB2ClientUser
setDB2ClientWorkstation
setDB2ClientAccountingInformation

我的问题是......在连接池的连接上设置这些值的最佳方法是什么。我是否需要访问底层连接才能设置这些值?我应该在将连接返回到池之前清除它们吗?有人有代码示例吗?

0 投票
3 回答
2042 浏览

java - unable to update CLOB using DBCP connection

Am trying to do update a clob column using a connection object that is retrieved using Apache DBCP connection pooling.

Earlier, I've implemented connection pooling using this and it was working fine i.e am able to update CLOB. I switched to DBCP because I was getting java.sql.SQLException: ORA-01000: maximum open cursors exceeded. I've checked connection, resultSet, preparedStatement objects in all the DAOs. All the finally blocks have these cursors closed. Still am facing this error and so decided to switch to DBCP.

But, when I try to update CLOB, with this DBCP connection, the application just hangs at pstmt.executeUpdate().

where getCLOB() method is:

I've also tried by passing the ((DelegatingConnection) conn).getInnermostDelegate() connection, but no use.

Also, I tried what Shiny has suggested here. This time its hanging while I'm selecting the data.

Am using Oracle 9i and the JDBC Oracle Driver version is above 10(Sorry, couldn't remember exact version now).

0 投票
3 回答
8681 浏览

java - 使用 Oracle DB 在 Java Web 应用程序中超过最大空闲时间

我有一个 Java Web 应用程序连接到在另一台机器上运行的 Oracle 数据库(不确定这是否相关)。我正在使用 DBCP 进行连接池。Web 应用程序在 JBoss 4.2.2 中运行,我们将数据源定义为 Spring 中的 bean。

我们将 Hibernate 用于 ORM。

我们偶尔会收到如下错误:“ORA-02396:超出最大空闲时间,请重新连接”。

我尝试向我们的 DBCP BasicDataSource 添加名为“removeAbandoned”(true)和“removeAbandondedTimeout”(120)的属性,但无济于事。

任何帮助,将不胜感激。如果我需要提供更多信息,请告诉我 - 我对连接池等的内部工作原理并不是很了解......

0 投票
2 回答
3243 浏览

mysql - Hibernate、C3P0、Mysql 连接池

我最近从 Apache DBCP 连接池切换到 C3P0,并查看了我的日志以查看存在连接超时问题。过去我在使用 DBCP 和 Tomcat 时没有遇到过这种情况,所以我想知道这是配置问题还是驱动程序问题。

每当我在服务器空闲一段时间后加载页面时,我都会看到一些内容没有发送(因为服务器无法获得连接或其他东西)。当我刷新页面时,所有内容都在那里。

有没有人推荐使用 MySQL 连接池,因为我一直在使用 MySQL?您对 MySQL 连接池有什么体验?

沃尔特

0 投票
2 回答
8891 浏览

java - 获取连接池中的空闲连接数

在我的项目中,Spring 使用 org.apache.commons.dbcp.BasicDataSource 类管理连接池。是否可以获得当前时间空闲或使用的连接数?

谢谢。

0 投票
1 回答
2949 浏览

gwt - GWT eclispe 嵌入式码头和 DBCP 连接池

我正在尝试设置 GWT (2.0.3) Eclipse 插件附带的嵌入式 Jetty 以使用在 Tomcat 下完美运行的 JNDI 连接池,但没有成功。现在,由于我已经阅读了有关该问题的一些内容,因此我设法执行了以下操作:通过使用以下参数启动 jvm,将 Jetty 命名初始上下文工厂包含到类路径中:-Djava.naming.factory.initial=org.mortbay.naming.InitialContextFactory. 我还创建了一个jetty-web.xml看起来像这样的:

并在我的构建路径中包含了必要的文件。如您所见,那里声明了两个 JNDI 资源,一个使用 MySQL 数据库的句柄MysqlConnectionPoolDataSource(我在博客文章中看到)在我的环境下运行良好,并使用它来确保码头正在解析 jetty-web.xml正确,第二个尝试用于DBCP连接到 DB2 数据库。问题是每当我尝试使用 DBCP 资源时,Jetty 启动时都会出现以下错误:

正如我所说,这些在 Tomcat 下运行良好,而且问题不是 DB2 特有的,我也无法使用 DBCP 获得 MySQL 数据源。查看错误消息,似乎 DBCP 文件不在类路径中,但我不知道如何将它们放在那里(它们当然在项目构建路径中,但这似乎与 Jetty 无关)。我可能必须向 Djava.naming.factory.initial 添加另一个参数,但我不确定 DBCP 工作的正确参数是什么。

干杯

0 投票
6 回答
31112 浏览

java - Oracle 通用连接池 (UCP) 有多好

有人有在实际生产负载下使用 Oracle UCP 的经验吗?它是否能很好地处理数据库重新连接?是否存在多线程问题?有人将它与 C3P0 或 Apache DBCP 进行比较吗?

0 投票
1 回答
530 浏览

database - dbcp 在数据库不可用时返回连接时遇到问题

我在 2009 年 1 月 29 日找到了 erickson 的以下链接:

DBCP(Apache Commons 数据库连接池)是否仍然相关?

“DBCP 存在严重缺陷。我认为它不适合生产应用程序,尤其是当有这么多驱动程序在其 DataSource 本地支持池时。

在我的情况下,压垮骆驼的最后一根稻草是当我发现整个池在对数据库进行新连接尝试的整个过程中都被锁定时。因此,如果您的数据库发生导致连接缓慢或超时的问题,其他线程在尝试将连接返回到池时会被阻止——即使它们是使用数据库完成的。”

我想知道自从这篇文章以来,dbcp 是否发生了很大的变化或改进。我在我的生产系统中看到了这个确切的问题。

有没有人可以替代 dbcp?我在数据库连接框架中使用它......基本上,我继承了一个框架,工程师认为重写hibernate会很有趣。别问……这是一个漫长而肮脏的故事。无论如何,当数据库变慢/变慢时,我在将连接返回到池时遇到了这些问题。有什么想法、建议、替代方案吗?

0 投票
1 回答
3173 浏览

postgresql - OSGI 和 Apache Commons-DBCP 类加载问题

我继承了一些在 OSGi 包中使用 Apache commons-dbcp 连接池的代码。此代码适用于 Eclipse/Equinox OSGi 版本 3.4.3 (R34x_v20081215)、commons-dbcp 1.2.2 和 springsource.org 的 postgres jdbc3 8.3.603 包。

我想现代化,也许这是我的第一个错误!

当我将新版本的 Felix 或 Equinox OSGI Cores 与新的 postgresql JDBC3 或 JDBC4 捆绑包以及最新版本的 commons-dbcp (1.4.1) 一起使用时,我遇到了类加载问题。我做了很多搜索,发现 commons-dbcp 代码应该有一个修复DBCP-214,但它似乎仍然失败。

我试图将 org.postgresql 放在 commons-dbcp MANIFEST.MF import-package 行,但这也不起作用。

我在一个激活器中编写了一个简单的测试,首先执行一个基本的 class.forName() 和 DriverManager.getConnection(),这工作正常,但是当我添加 BasicDataSource() 并设置与 BasicDataSource.getConnection() 的连接时,我得到ClassNotFoundException。请参阅下面的代码示例。

提前感谢您的任何帮助,建议,...

修!

0 投票
2 回答
4928 浏览

java - 如何使用 Spring、Hibernate 3.3 和 c3p0 配置 MySQL 连接属性?

我目前正在将应用程序从 Hibernate 3.2 升级到 Hibernate 3.3。虽然我会坚持使用默认连接池(Hibernate 将其默认值从Commons DBCP更改为c3p0),因为我没有任何充分的理由选择非默认池。至少没有,但以前使用过 DBCP。

到目前为止,升级几乎没有任何问题。我唯一不能工作的是将属性传递给底层的 MySQL JDBC4Connection。到目前为止,我使用 DBCP 的BasicDataSource.addConnectionProperty(String,String)来传递属性(useUnicode=true,characterEncodin=UTF-8,characterSetResults=UTF-8,zeroDateTimeBehavior=convertToNull)。

但是,除了将它们包含在 JDBC URL 中之外,我找不到任何对 c3p0 执行相同操作的方法。(这是我想避免的事情,因为我想保持 URL 可配置而不强迫用户包含这些参数。)

到目前为止,我尝试使用ConnectionCustomizer没有成功。还有其他建议吗?