问题标签 [jdbc-pool]

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 回答
32541 浏览

java - 数据库重新启动后尝试重新连接 jdbc 池数据源

我有一个带有 Java 后端的 Web 应用程序,它使用Tomcat jdbc-pool进行数据库连接。这工作正常。

但是,我试图在将其导出到其他位置之前对其进行万无一失,最近发生了一种情况,有人重新启动了 SQL Server 数据库服务,但没有重新启动 Tomcat 服务。这导致了 SQLException:java.sql.SQLException: I/O Error: Connection reset by peer: socket write error直到我重新启动 Tomcat,强制 jdbc-pool 数据源重新连接。

我在 Tomcat jdbc-pool 文档中寻找某种配置来告诉数据源尝试重新连接,但我找不到任何东西。

有谁知道这是否有某种配置,或者我应该在每次请求之前检查这个条件吗?

0 投票
4 回答
13236 浏览

java - Tomcat error: java.sql.SQLException: No suitable driver found for jdbc:sqlserver://

I have a terrible problem with Tomcat, well terrible because of this problem I've thrown away the project for more than a month now... Yet I'll still need to solve it and to go on with the project...

So it's throwing me this error:

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://isd.ktu.lt:1433;DatabaseName=LN2012_bakDB2 java.lang.NullPointerException

The thing is that the same application is working in the desktop version perfectlz, however when it comes to the version which is supposed to be running on the server (Tomcat 7.0.22.0 inside NetBeans 7.1.2) it just throws the Error. It seems it doesn't load the pooling driver or I don't even know...

Well here's the part responsible for that:

It happens at the point where it tries to get the connection, then it gets a null pointer exception, since the connection is not retrieved successfuly.

I'm not familiar with Tomcat and up until this moment, Netbeans handled tomcat fine... The thing is I hate errors like this... If you don't solve it in three days, you get so frustrated and don't wanna get back to that, you feel like hitting a wall... Now I tried googling a lot about it, but still it wasn't much of a help... So I'd be really glad if somebody could help me with this. Thanks. :)

0 投票
1 回答
107 浏览

java - 为什么我们要创建一个 PoolableConnectionFactoryObject

所以,我意识到数据库池可能有比 JDBC 更好的选择,但仍有一些东西让我发疯。在所有示例代码中,他们建议像这样进行池化。

为什么要创建 PoolableConnectionFactory?它从未使用过,从查看源代码来看,我看不出它实际上将构造函数中的任何东西联系在一起,或者除了设置它自己的私有变量之外还有什么神奇的作用。JDBC 站点的信息相当神秘,我对源代码的所有挖掘都让我感到困惑。有理由这样做吗?显然,您也可以只用 new 实例化对象,而无需实际将其分配给变量,这就足够了……让我更加困惑。

0 投票
1 回答
2479 浏览

java - 带连接池的 PreparedStatement 池

可能重复:
dbcp 中的准备好的语句池

我正在构建一个使用 Tomcat 的数据库连接池机制供其内部使用的 Web 应用程序。我也在尝试汇集准备好的语句,以便应用程序更有效地检索数据。

据我了解,当连接、结果集和语句关闭时,连接将返回到池中。如果设置了适当的标志,放弃的连接也会关闭并返回到池中。关闭连接意味着释放所有数据库游标和缓存语句,包括准备好的语句。那么准备好的语句池有什么意义呢?

0 投票
0 回答
792 浏览

java - Java web 服务 MYSQL 连接管理

我在 Web 服务中遇到了 MySQL 连接。

这是我用来连接 Web 服务中的数据库的课程。我有一些使用相同 Web 服务运行的石英计划作业。

我在每个 Web 服务方法调用和每个作业开始时调用 OpenConnection() 方法,最后阻塞 CloseConnection()。

但是我经常收到此错误,而我在尝试中仅关闭一次连接 - finally 块。

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:语句关闭后不允许任何操作。

所以我的网络服务方法看起来像

0 投票
2 回答
3220 浏览

performance - 将 DBCP 替换为 Tomcat JDBC 池时增加负载并降低性能

在 DBCP 中出现连接泄漏和死锁问题后,我们决定将其替换为 Tomcat JDBC 池。当然,迁移真的很简单。

但在将其部署到生产环境后,我注意到,运行两个 Tomcat 的服务器上的负载从 4-4.5 增加到 5.5。除了更换游泳池外,我们没有再做任何事情。此外,使用 JMeter 测量的性能下降了约 5%。

我花了一些时间调整池参数,但没有明显的效果。我在下面粘贴了我当前的配置(来自<GlobalNamingResources>in server.xml):

FairQueue 和 PoolSweeperEnabled 为 true

在 Spring applicationContext-jdbc.xml 我只有:

我究竟做错了什么?我想,JDBC_pool 应该比开箱即用的 DBCP 更快。

0 投票
1 回答
373 浏览

tomcat7 - Tomcat jdbc-pool 获取RetryDelay

C3p0 缓存有 acquireRetryDelay 参数来设置获取尝试之间的时间。
tomcat7 jdbc-pool 有同样的功能吗?

0 投票
0 回答
314 浏览

jdbc - dbcp 以高打开/关闭率生成与 Oracle DB 的连接数

我的应用程序使用DBCP1.4、hibernate 和 spring,连接到 oracle。在几百个请求/秒的常见负载下,我获得了与数据库的太多 TCP 连接(导致数据库端过度使用系统进行身份验证,16 核机器的 cpu 为 95%)。超过 80 个连接/秒,每个连接为来自客户端的少量请求和 FIN 提供服务。每个会话只有 15-20 毫秒。我想调整DBCPoracle 驱动程序(不知道哪个负责)以延长每个连接的时间(至少考虑 5-10 秒)我怎么能得到这个?DBCP 中的池设置为

spring的线程执行器设置是-

0 投票
1 回答
1245 浏览

java - 如何使用 JDBC 判断事务是否正在进行?

我正在使用Connection关闭自动提交的 JDBC。在我的清理方法中,我想检查以确保当前没有正在进行的事务,但我看不到任何获取此信息的方法。在给定 JDBC 的情况下,如何确定事务是否正在进行Connection

更新

尽管 JDBC 本身没有任何内容,但 Tomcat JDBC 连接池具有拦截器的概念,我想知道是否可以编写一个来跟踪该级别的事务。

0 投票
3 回答
3766 浏览

java - Java - DBCP 与 JNDI?

我是一个新手,我已经创建了一些 simlpe Java Swing 应用程序。我能够使用 apache commons DBCP 创建连接池并访问数据源。

我最近开始使用 JSP 和 Servlet 创建基于 Java Web 的应用程序。我已经学会了使用 JNDI 来访问数据源。我更新 XML 文件并使用 InitialContext() 和 lookup("java:comp/env") 就是这样!!!!我使用 Apache Tomcat 作为我的 Servlet/JSP 容器。

1. 但是DB连接池是在哪里创建的呢?

2. 如果是,那么这是否意味着 JNDI 在内部以某种方式使用 DBCP?

当我必须为 Swing 应用程序创建 DBCP 时,我必须首先创建一个 GenericObjectPool 实例,然后创建一个连接工厂对象,最后创建一个 PoolableConnectionFactory 对象来创建用于获取连接的 Datasource。