【发布时间】:2014-01-02 07:19:54
【问题描述】:
我有一个项目同时使用 slick 和 anorm。
I define a method for slick
object DBCache {
def apply(app: play.api.Application) = Cache.getOrElse[Database](app.hashCode.toString){
Database.forDataSource(PlayDB.getDataSource("default")(app))
}
}
private[persist] def inSession[T](block: Session => T) = DBCache(current).withSession(block(_))
当我可以批量插入方法时使用异常
def batchInsert(customerAccounts: Seq[Customer]) = DB.withConnection { implicit conn =>
val sql = SQL(insertSql)
val batch = customerAccounts.foldLeft(sql.asBatch) {
(sql, c) => sql.addbatch(xxx)
}
}
它报告
play.api.Application$$anon$1: 执行异常[[MySQLNonTransientConnectionException: 连接关闭后不允许任何操作。]
如何避免这个错误
【问题讨论】:
-
你是每次都有还是偶尔有?
-
@Somatik 定期,而不是每次
-
与这些bugs.launchpad.net/bonecp/+bug/1243551 bugs.launchpad.net/bonecp/+bug/1258339 相关的bonecp 问题跟踪器上有很多问题,一个选项是尝试不同的连接池插件(c3p0)
标签: scala playframework slick anorm