问题标签 [connection-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.
java - 在带有 H2 嵌入式数据库的 Android 设备上使用 JDBC 连接池
我正在开发一个由 Android 应用程序使用的嵌入式 Java 应用程序 (jar)。(Android 设备(API19)只是视图,我将带有 Gradle 的 JAR 导入到我的 Android Studio 项目中)。
我正在使用H2
数据库(在 Android 上测试),我正在尝试将它与连接池一起使用(尝试C3P0
和HakiriCP
)。
这是 jar pom 文件内容(使用 HakiriCP):
为了构建 jar,我使用了 maven 插件(程序集、one-jar...)来确保所有依赖项都在类路径中。
当我运行 JAR 时,一切都运行良好,但是当我尝试运行 Android 应用程序(使用该 jar)时,我遇到了一些错误。这是我的Android项目gradle文件内容:
我得到的错误主要是Class-not-found Exception
:
Caused by: java.lang.ClassNotFoundException: Class io.prometheus.client.Collector not found
在范围内HakiriCP
有一些依赖项,provided
所以我尝试在我的 Android gradle 文件中导入这些依赖项,但我仍然遇到错误,例如:
有什么我想念的吗?
是否可以在 android 上使用 JDBC 连接池?(根据在 android 中建立与 MySQL 的池连接是可能的,但我仍然无法让它工作)。
也许有人可以推荐另一个在android上测试的连接池?
谢谢
更新
根据 H2 文档:
目前只支持JDBC API(计划在以后的版本中支持Android数据库API)......
限制:目前不支持使用连接池,因为需要 javax.sql。类在 Android 上不可用。
tomcat - Tomcat 忽略 removeAbandonedTimeout 并关闭池中的连接
我正在使用 commons dbcp 在 as400 上使用 JDBC 连接到 DB2 的 tomcat 7.0 上工作。一旦我在服务器上加载负载,它就会立即打开和关闭与数据库的连接,而忽略我设置的 30 分钟 removeAbandonedTimeout 设置。我尝试了几种设置都无济于事。例如,在 15 秒的时间间隔内,它将无缘无故地打开 150 个连接并关闭 140 个连接。我们让这个应用程序在旧的 WebSphere 服务器上运行,它不会关闭连接,除非它们真的空闲。
这是我的配置:
当系统空闲或只有几个测试帐户时,它会按预期运行,但是一旦我在服务器上加载,大量打开和关闭立即开始。例如,它将在相同的 15 秒间隔内打开 150 个连接并关闭 90 个连接。我正在从我的监控软件读取与 as400 上 QZ 作业的开始和结束相关的套接字打开和关闭。在使用连接时,它将不断执行此操作。
这违背了连接池的目的。任何想法或想法表示赞赏。
也令人困惑,因为不清楚我应该从哪些参数开始。不接受与Tomcat JDBC 连接池参数不同的commons dbcp 参数,即removeAbandonedOnMaintenance。但是 minEvictableIdleTimeMillis 的默认值 1800000 是从 Tomcat jdbc 池参数中获取的,而不是 60000。
https://commons.apache.org/proper/commons-dbcp/api-1.2.2/index.html
https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html
当我没有明确设置参数时,这就是我得到的默认值。它似乎列出了所有 tomcat jdbc 池参数,而不是 commons DBCP 参数。但是,它从 commons DBCP 中选择 minEvictableIdleTimeout 的默认值,而不是从 Tomcat JDBC 连接池参数中选择 60 秒。奇怪的部分是removeAbandoned 参数没有为commons dbcp 列出,它是removeAbandonedOnMaintenance 和removeAbandonedOnBorrow。一个星期以来,我一直试图把这种果冻钉在墙上。
我使用 jmxproxy 来获取实时统计信息和设置。
http://myserver:8080/manager/jmxproxy/?qry=Catalina%3Atype%3DDataSource%2C *
oracle - 数据库备份后未建立连接
在 weblogic 12c 服务器中部署了 web 应用程序,它具有数据源配置以利用连接池。数据库是 Oracle 12,用例:当应用程序处于活动状态并运行时,已经运行了一个 min 数据库备份脚本(停止 db,备份,启动 db),之后尝试访问应用程序(会话建立)然后得到 SQL 错误(连接已经关闭)。可能是什么问题?
临时解决方案:重新启动应用程序后,它工作正常,没有任何问题。仍然想知道它是如何工作的?
数据源配置:
android - 改造 2 无法得到响应
我有一个 android 应用程序,主屏幕向服务器发出很少的请求(enqueue() 的 5-10 个请求取决于应用程序逻辑)但是当我再添加一个请求时,我无法从日志中获得响应。我配置改造以下代码:
我通过以下方式致电请求:
但是 HttpLoggingInterceptor 不会将此请求的响应记录为 <-- logging.... 它并非在所有请求中都发生,有时可以,所以我认为原因是连接池,但我通过添加以下行来尝试代码:
但它没有影响。请帮我找出解决这个问题的方法。非常感谢!
mysql - 设置连接池。重新连接到数据库
中的连接池有问题tomee 8
。大约工作 8 小时后,与数据库的连接断开。如何配置重新连接到数据库。
我想了想validationQuery
testOnBorrow
。也有一些选择removeAbandoned
removeAbandonedTimeout
,但他们写道这是不可取的。defaultAutoCommit
不太明白为什么,但据我所知,文档是关于重新连接的。
这是server.xml
它是日志:
java - 与 JDBC 一起使用时,Java Executor 服务未关闭线程
我使用 ExecutorService 和 FixedThreadPool 通过 JDBC 执行一些 SQL。但是,当我分析我的应用程序时,似乎线程数正在增加,当然内存也在增加。问题是这在某种程度上与 JDBC 有关,因为当我在线程池的任务中删除创建语句和连接时,线程数根本没有增加。
以下是我将任务汇总到我的线程池中的方式:
这是我在任务中所做的:
这是上面提到的代码中使用的 ConnectionPool (pool.getConnection(),我使用 apache DBCP2:
似乎线程没有正确结束,这很奇怪,因为如果 ExecutorService 是 5 个连接的固定池,它们应该用完吗?所以我不知道线程是如何仍然存在的,它们导致了相当大的内存泄漏。
问题在于创建 Connection 和 PreparedStatement 对象,因为当我将其注释掉时,线程数保持在固定值。
typo3 - TYPO3 ConnectionPool 找到文件引用的uid后的文件并更新数据
这个概念是,在成功保存我的对象后,它应该更新数据库中的文本(使用 Hook)。让我们称该字段为“ succText ”。我想访问的表是 sys_file 但我只在保存对象时获得 sys_file_reference id。所以我想我可以使用 ConnectionPool 来选择这个文件引用的 sys_file行,然后在字段“ succText ”上插入数据。
我试过这个:
但这给了我 sys_file_reference id,而不是 sys_file 表的 id 和字段值。
至于更新,我还没有尝试过,因为我还没有弄清楚如何获取需要更新的行。我猜想在找到行后使用子查询,我真的不知道。
processDatamap_preProcessFieldArray将被重命名为 post。我只有这种方式才能在后端获得结果。
提前致谢,
postgresql - Postgres 在通过 JBOSS 运行我的应用程序时出现致命错误
我正在通过JBoss使用 postgresql 数据库运行我的应用程序,但给了我最大连接错误,但通过PGAdmin我能够连接数据库
17:14:44,917 错误 [STDERR] [警告] com.mchange.v2.resourcepool.BasicResourceP ool$AcquireTask@52900718 -- 采集尝试失败!!!清除待处理的获取资源。在尝试获取所需的新资源时,我们未能成功超过允许的最大获取尝试次数 (2)。上次获取尝试 mpt 异常:org.postgresql.util.PSQLException:致命:剩余连接槽保留用于 org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(Conn) 的非复制超级用户连接
mysql - Cordapp-未找到 MySql ConnectionPoolDataSource 的 Hikari 连接池类
我正在为 Corda 构建一个工作流程。我想使用 Hikari 连接池库来连接 MySql 数据库。我不是要替换分类帐 H2 数据库。该数据库用于存储/检索一些分类帐中不需要的信息。我可以在没有 Hikari 的情况下连接到 MySql。但是,当我使用 Hikari 时,出现错误。java.lang.ClassNotFoundException: com.mysql.cj.jdbc.MysqlConnectionPoolDataSource
我已经将 Hikari 代码作为独立的 jar 文件进行了测试。它工作正常。这是导致问题的corda加载和运行jar文件的方式的组合,在cordapps目录中。因为类是 jar 的一部分。这个好像有点不对
我已经添加了 MySql 依赖项,与https://docs.corda.net/cordapp-build-systems.html#setting-your-dependencies中提到的内容一致 我也可以连接到 MySql DB,如果我是不使用光。
我探索了 cordapp jar 。我可以看到必要的 jar 存在于 cordapp jar 中。
cordapp 的 Gradle 依赖项
示例代码
例外:
如果我从 jar 中的主类运行代码,它就可以工作。但它在cordapp内部不起作用