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

java - java dbcp2多线程连接访问

我对在 tomcat 上使用连接池非常熟悉,并且多年来一直使用它没有问题。然而,目前我正在开发一个 main 方法应用程序,该应用程序出于性能原因需要同时运行线程,并且这些线程每个都需要访问同一个数据库。如果我完全剥离数据库代码并且仅将数组用于测试目的(例如多线程工作),我的代码就可以工作了,但是一旦我重新添加数据库连接,第一个线程就会获得锁定,而其他线程则不会'根本跑不起来。玩过c3p0、dbcp2;目前正在使用 dbcp2。谢谢!那里有大量文档,但似乎特定于我的用例的代码示例并不多。这是一个示例应用程序:

0 投票
1 回答
47 浏览

java - 将 connectionTimedOut 设置为 1 秒会引发 Socket Timed Out 错误

我正在开发一个在 pcf 环境中运行的 Web 应用程序,它有大约 100 个用户。我正在使用 Hikari CP 库connectionTimedout通过在应用程序代码中将其设置为 1 秒来管理数据库连接和自定义属性。连接池大小设置为 100。

在一种情况下,调用我明确创建的存储过程

对象与ArrayDescriptor()预期的连接对象一样。我using ArrayDescriptor作为存储过程的输入需要对象数组。

但是,此代码随机抛出 Socket Read Timed Out 错误

使用 dbcp 库管理的连接池配置时,相同的代码工作正常。

任何人都可以帮忙吗?Hikari CP 库有什么问题?

根据合规性规则,我不能在公共领域发布代码。

0 投票
1 回答
165 浏览

java - 关闭简单的 Micronaut CLI 数据应用程序时出错

我刚刚开发了一个小型 micronaut CLI 应用程序来探索 Micronaut jdbc 和 sql 功能。以下是依赖项,

该应用程序运行良好,但退出时失败并​​出现以下错误,

我尝试查看基于注释的生成代码$DatasourceConfigurationDefinition ,发现在 dispose 方法中有一个 checkcast 指令(检查第 1 行)

因此,显然 micronaut 在初始化上下文但在处理 bean 时替换了实例io.micronaut.configuration.jdbc.dbcp.DatasourceConfiguration..TransactionAwareDataSource$DataSourceProxy它失败了,因为代理无法转换它已包装的实例。

这看起来像一个非常简单的错误(可能已被 micronaut 的自动化测试套件捕获),所以我觉得它一定是由于依赖项中的一些错误配置而发生的。

非常感谢任何帮助。

0 投票
2 回答
312 浏览

java - 并发日志记录到 sql DB - 线程未并行运行

我用 2.14.0 和 2.13.3 对此进行了测试,我将 JDBC Appender 与 DynamicThresholdFilter 结合使用,并尝试了一个普通的 Logger 和 AsyncLogger。

在 JDBC Appender 中,我还尝试了 PoolingDriver 和 ConnectionFactory 方法。

事实证明,由于 Log4j2,线程没有并行启动。

使用 AsyncLogger 甚至使情况变得更糟,因为输出表明 Appender 未启动,并且在 15.000 个预期日志中,只有 13.517 个在数据库中。

为了重现这个问题,我做了一个 github repo,请参见这里:https ://github.com/stefanwendelmann/Log4j_JDBC_Test

线程

编辑

我用 h2db 替换了 mssql-jdbc,线程不会阻塞。JMC 自动分析说有JdbcDatabaseManager的锁定实例。

我的 PoolableConnectionFactory 中是否存在 mssql-jdbc 的配置问题,或者 dbcp / jdbc 驱动程序池是否存在一般问题?

编辑 2

在 Apaches LOGJ2 Jira 上创建票证:https ://issues.apache.org/jira/browse/LOG4J2-3022

编辑 3

为 mssql 和 h2:file 添加了更长的飞行记录

https://github.com/stefanwendelmann/Log4j_JDBC_Test/blob/main/recording_local_docker_mssql_asynclogger_10000_runs.jfr

https://github.com/stefanwendelmann/Log4j_JDBC_Test/blob/main/recording_local_h2_file_asynclogger_10000_runs.jfr

0 投票
1 回答
187 浏览

java - java连接池和自动提交状态

我找不到答案的快速问题。如果您有一个连接池,其中某些连接可能已设置为自动提交 false。如果这些被返回并从池中检索。自动提交是否设置回 true(默认)?还是我可以在一种或另一种模式下建立一些联系?

0 投票
1 回答
123 浏览

java - Java 和 MariaDB 连接驱动程序错误

我可以用 JDBC 和 DriverManager 连接 Java 和 Maria DB。有用。我可以在我的数据库表等中写一行……但是使用“基本数据源”我无法连接到 MariaDB。我在 FEDORA 上使用 openJDK 15。我不明白为什么我无法连接到数据库。

这是我的代码:

这是我运行代码时的错误:

这是我的 pom.xml 和 Maven 以及我对 MariaDB 连接器和 DBCP 的依赖项

0 投票
1 回答
78 浏览

java - 使用 Java DBCP 连接到 Cassandra

我使用 Apache Common DBCP 库中的“BasicDataSource”类并使用 DataStax 驱动程序“com.simba.cassandra.jdbc42.Driver”连接到带有 Java 的 Cassandra 数据库。当 Cassandra 配置为“authenticator”设置为“AllowAllAuthenticator”时,我可以连接到数据库。但是,当我启用“PasswordAuthenticator”并在“BasicDataSource”对象中设置用户名/密码时,我无法连接并获得异常“主机/IP 地址:端口上的身份验证错误:主机/IP 地址:端口需要身份验证,但没有身份验证器在集群配置中找到。”。建立安全连接需要什么?

0 投票
1 回答
77 浏览

java - Java BasicDataSource 连接时卡住

我正在使用 Apache Commons 库的 DBCP 组件连接到 Oracle 数据库。我创建了一个 BasicDataSource 对象并将 MaxWait 时间设置为两分钟。但是,当我调用“getConnection”方法来获取连接时,它永远不会返回或超时。我正在尝试连接到 Oracle 12.1.0.2 数据库。这可能是什么原因?谢谢。

0 投票
0 回答
25 浏览

aws-secrets-manager - 如何在 dbcp 基本数据源中重新加载密码

dbcp2 基本数据源正用于我们的一个 java 应用程序,并且通过调用此设置器设置数据库密码

密码存储在 AWS 秘密管理器中,现在为数据库构建了密码轮换逻辑,所以现在每当轮换密码时,我的应用程序无法验证数据库,我需要绕过新密码重新部署我的应用程序。

我可以在应用程序中读取最新密码,但在 dbcp 中没有看到任何回调 API 来刷新密码。

DBCP 中是否有任何选项可以在不重新部署应用程序的情况下刷新密码?

0 投票
1 回答
15 浏览

java - BasicDataSource 支持域名吗?

现在,当客户使用 BasicDataSource 时,他们希望将 URL 连接字符串更改为域名。有没有办法支持这一点?