- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个有趣的问题,但我无法解决。我正在使用玩! 2.0.4 并使用集成的 BoneCP 连接池获取数据库连接。但是,出于某种原因,BoneCP 不断返回关闭的连接。
Database Server: Amazon RDS MySQL 5, default timeout settings (which should be 8 hours...)
我的 Play 数据源配置如下所示:
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://{server}/{schema}?autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8"
db.default.partitionCount=4
db.default.idleConnectionTestPeriod=2 minutes
我假设将 idleConnectionTestPeriod 设置为 2 分钟肯定会阻止 BoneCP 返回关闭的连接,但事实并非如此。
每隔一段时间,我就会在我的日志中得到以下堆栈跟踪:
Exception in thread "pool-6-thread-25" java.sql.SQLException: Connection is closed!
at com.jolbox.bonecp.ConnectionHandle.checkClosed(ConnectionHandle.java:350)
at com.jolbox.bonecp.ConnectionHandle.setReadOnly(ConnectionHandle.java:1089)
at play.api.db.BoneCPApi$$anon$1.onCheckOut(DB.scala:328)
at com.jolbox.bonecp.BoneCP.getConnection(BoneCP.java:514)
at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:114)
at play.api.db.DBApi$class.getConnection(DB.scala:64)
at play.api.db.BoneCPApi.getConnection(DB.scala:273)
at play.api.db.DB$$anonfun$getConnection$1.apply(DB.scala:129)
at play.api.db.DB$$anonfun$getConnection$1.apply(DB.scala:129)
at scala.Option.map(Option.scala:133)
at play.api.db.DB$.getConnection(DB.scala:129)
at play.api.db.DB.getConnection(DB.scala)
at play.db.DB.getConnection(DB.java:50)
at play.db.DB.getConnection(DB.java:43)
at play.db.DB.getConnection(DB.java:29)
at com.edatasource.inboxtracker.tasks.TrackSiteEventActionTask.run(TrackSiteEventActionTask.java:23)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
有人知道我该如何解决这个问题吗?目前,我不得不将 DB.getConnection() 包装在 try/catch 中,只捕获 BoneCP 抛出的异常并重试,直到我检索到有效连接。看来这应该是不必要的。
感谢您的帮助。
最佳答案
请尝试使用 0.8.0-beta1。有一个与此相关的错误。
关于mysql - 玩! 2.0 - BoneCP 返回关闭的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13161452/
我尝试在使用 playframework 的项目中配置 BoneCP 的设置。 例如 db.server.partitionCount=1 db.server.minConnectionsPerPar
我们有一个 Oracle 11g 数据库,一个使用 hibernate 的 Web 服务。我们最近改用 BoneCP 进行连接池,但似乎出了点问题,BoneCP 在软件启动过程中关闭了。 这是 hib
我正在将 Hibernate 4 与 BoneCP 集成,并想了解这些属性的含义: 30 240 select 1 from db.table limit 1 我的应用程序需要保持与 mysqldb
我正在使用一个使用 BoneCp 访问 mysql 数据库的 Play 应用程序(play-java 2.2.1,bonecp 0.8.0.RELEASE),并且没有找到为所有语句设置语句超时的方法(
我对 BoneCP (0.7.1 RELEASE) 有疑问。我虽然 BoneCP.getConnection() 确保它会返回 Connection 对象,假设 DB 是活的。 这是我配置池的方式 p
我在我的 Java 项目中使用 BoneCP。但是,不幸的是,我发现这个池在数据库故障后无法恢复。我不是唯一遇到此类问题的人(如果需要,请查看官方论坛)。由于我(和许多其他人)从未在 bonecp 论
在使用 BoneCP 连接池时,我遇到了以下困惑,并希望听到一些关于这方面的建议: 是 getConnection BoneCP线程安全的方法?当有许多线程请求并行连接时,使用它的最佳方法是什么? 每
我正在使用带有光滑的 Bonecp 数据源。并发现池包含关闭的连接所以我总是遇到这个异常 java.sql.SQLException: Connection is closed! at com
我正在尝试设置 BonusCP 连接,但收到以下错误消息: 线程“main”中的异常java.lang.ClassCastException:com.jolbox.bonecp.StatementHa
我正在测试 BoneCP 以及其他连接池解决方案,但在让 BoneCP 工作时遇到问题。 (在 Eclipse 中使用简单的 Java 应用程序) 我使用的代码是从BoneCP JDBC Exampl
我们有 BoneCP 库来管理我们的连接池。我想知道以下语句是否会将连接返回到池中。 statement = conn.createStatement(); .... lots of code. ..
我在 Java 中使用 BoneCP 和 MySQL。 我有几个线程,随着时间的推移,它们将从池中请求连接来执行一些查询。这些查询是重复的,因此我想使用准备好的语句。 我以前使用过准备好的语句,当时我
我正在为我的 Web 服务应用程序使用 Spring + JPA,但是为了实现一些巨大的查询,我实现了一个单独的服务,该服务从 spring DataSourceUtil(org.springfram
我正在尝试使用他们网站上的测试代码来测试 BoneCP。但是,我似乎无法真正建立到在线托管服务器的连接。我的代码在下面,因为我是菜鸟,所以我可能会犯菜鸟错误。感谢您的帮助! package org.
我有: BoneCP CONNECTION_POOL = ...; CONNECTION_POOL.getConfig().setJdbcUrl("jdbc:derby:database...;shu
我有一个应用程序设置为使用 BoneCP 池化 mysql 连接。现在,该应用程序没有得到大量使用,因此连接使用不频繁。一段时间后,曾经有效的查询开始失败,我收到类似这样的消息: com.mysql.
使用 BoneCp 0.7.1 我设置了我的应用程序并且一切正常,但随后数据库离线了。 在下一个应用程序请求中,getConnection() 开始抛出内部异常,重试机制启动,但 getConnect
我目前正在将 BoneCP 集成到一个现有的 Hibernate 项目中,当我阅读 BoneCP 的手册时,我发现了这个: 如果您直接在 Hibernate 中使用此库(即没有数据源,不推荐) 我开始
有谁知道使用 BoneCP 记录连接池数据(即打开和空闲数据库连接数)的热门方法?使用我从中迁移的 C3P0 很容易实现(实际上此信息默认记录在那里)但似乎更难唱 BoneCP。现在我在日志中看到的是
当连接返回到池时,BoneCP(或任何其他池)是否关闭连接的语句?据我了解,它不会调用实际连接的 close 方法,因此没有自动语句关闭。那么,它是以任何其他方式关闭语句还是我需要手动关闭它们? 最佳
我是一名优秀的程序员,十分优秀!