问题标签 [bonecp]
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.
java - Java 连接池最佳实践?
在厌倦了 c3p0 的持续锁定后,我转向 BoneCP 为我的数据库寻找替代连接池。我有一个服务器应用程序,每分钟处理大约 7,000 个项目,并且需要将这些项目记录到我们的 MySQL 数据库中。我目前有 100 个工作线程,并且像这样设置了我的池:
对于此类应用程序,这些设置是否可接受?我之所以问,是因为在运行一两分钟后,我在尝试调用getConnection
池时遇到了 BoneCP 异常。谢谢您的帮助。
这是我在工作线程中用于 db 调用的代码,它不会dbConn = this.dbPool.getConnection()
在线失败。我没有正确关闭连接吗?
这是我看到的错误:
jdbc - 当连接返回池时,BoneCP(或任何其他池)是否会关闭连接的语句?
当连接返回池时,BoneCP(或任何其他池)是否会关闭连接的语句?据我了解,它不调用实际连接的关闭方法,因此没有自动关闭语句。那么,它是以任何其他方式关闭语句还是我需要手动关闭它们?
java - 如何在 OpenJPA 2.0.1 中禁用缓存(编辑:BoneCP 问题)
我无法在 OpenJPA 2.0.1 中禁用缓存。
我在我的persistence.xml中设置了以下属性:
当我启动我的应用程序时,我可以看到这些属性的正确值已被注销。
我创建了一个基本实体来测试它,主要方法是每秒简单地查询一次表。我在每次迭代中创建一个新的 EntityManager。当我对一个空的 TEST 表运行它,然后手动将数据插入到测试中时:
它永远不会获取新数据(尽管如果我重新启动它会执行的程序)。
我究竟做错了什么?
EDIT1:如果我在 while 循环中创建一个新的 EntityManagerFactory ,它可以工作,但我的理解是,因为我已将 DataCache 和 QueryCache 设置为 false 我不需要这样做,而且这样做很昂贵。
EDIT2:我使用BoneCP作为我的连接池管理器,当我恢复使用 DHCP 或 C3P0 时,问题就消失了。虽然不知道为什么...
EDIT3:这是我用于 BoneCP 的配置:
jdbc - 2011/2012年Java JDBC连接池库选择?
我应该将哪个 JDBC 连接池库用于新的应用程序项目(不是 Web 应用程序)?
- Apache DBCP 有足够多的未解决问题,我认为这些问题一直推到 2.0。
- C3P0的开发似乎停止了。
- 而且他们两个看起来都比较慢。
- Proxool已经死了。
- DBPool几乎没有社区(至少我没有找到公共社区——没有论坛,没有邮件列表……)
- 没有 Tomcat, Apache Tomcat 池似乎无法使用
- 我在 Oracle 网站上找到了SQL Datasources文章,但似乎它只能应用于在 servlet 和 Web 服务等容器中运行的小程序。
我应该选择BoneCP可能吗?我没有太大的要求。我只需要一个良好且易于使用的数据库连接池,它正在积极开发中。图书馆,其作者可以回复错误报告,回答一些特定问题等。
顺便说一句,实际上,我只使用 MySQL。我发现 MySQL 驱动程序支持 DriverManager接口,但我不确定它是否真的池连接。
datasource - Spring TransactionManager 与 BoneCP 连接池的集成
我正在使用 BoneCP 连接池机制,并且我想使用 Spring 框架的支持来管理我的事务。我找到了一个关于Spring Transaction Management的示例,并尝试应用此示例。我从我的连接池中获得了一个 DataSource 实例,并将这个数据源提供给创建的 DataSourceTransactionManager,如下所示。
但是当我测试它时,我看到事务管理器在提交操作之前已经将数据写入存储。
是否与创建事务管理器之前创建新数据源有关?或者你有什么想法吗?
java - Oracle JDBC 驱动程序语句缓存与 BoneCP 语句缓存?
我正在使用 Oracle JDBC 驱动程序并评估 BoneCP。两者都实现了语句缓存。
我在问自己是否应该将其中一个用于语句缓存。你怎么看?每种方式的优点或缺点是什么?
jdbc - c3p0 或 dbcp 或 BoneCP 可以处理断开的连接
我正在阅读有关处理 jdbc 连接的 c3p0 和 dbcp 并听到很多问题,人们说 dbcp 已死,但 c3p0 不能执行 jdbc4 等等。但我不知道这些帖子是否已过时。
现在我点击了 BoneCP,它解释了如何在此处处理断开的连接。连接被包装,并且 BoneCP 在异常传递给应用程序之前对其进行一些预检查。如果连接出现问题,BoneCP 会将其从池中删除。
1.) 所有这些池都有这种连接处理吗?
2.)这个问题被一遍又一遍地问到,但我找不到 2011 年的任何答案。我应该为新应用程序使用什么,这将在未来 10 年(如果不是更多的话)中保持。
java - 使用 BoneCP:处理来自池的连接
我刚刚开始使用 BoneCP,这是我第一次使用连接池。我对我应该如何使用它感到有些困惑。目前我将 BoneCP 对象保存为静态变量,因此我可以在不同的连接之间使用它。
当我完成连接后,我用connection.close()
.
我应该这样做,还是不应该关闭它以使其能够被池重用?
这是我当前获取连接的实现:
这看起来是正确的还是我误解了我应该如何使用 BoneCP?
spring - 使用 Spring TransactionTemplate 取消当前事务
我正在使用连接池和 Spring TransactionTemplate
。如果要关闭连接池,首先必须将所有连接返回到池中,这意味着connection.close()
必须调用。我有一个线程使用TransactionTemplate
一些查询和另一个线程想要在连接池上调用一些关闭方法,但在这样做之前它首先必须告诉TransactionTemplate
关闭所有连接(实际上只是将它们返回到池中)。
在 Spring 中如何做到这一点以立即在使用的连接上调用 close?
java - BoneCP:getConnection 方法是线程安全的还是我们必须处理?
在使用 BoneCP 连接池时,我遇到了以下困惑,想听听一些建议:
- BoneCP的
getConnection
方法是线程安全的吗?当有许多线程要求并行连接时,使用它的最佳方法是什么? connection.close()
每次使用连接后都需要调用吗?- 如果需要调用
connection.close()
,它真的会断开与数据库的连接还是只是将连接发送到池?
提前感谢您的支持。