【发布时间】:2014-12-18 16:54:58
【问题描述】:
我的 scala 应用程序与具有活动会话限制的 Oracle 数据库一起使用。 我正在使用 AKKA 演员通过 Typesafe Slick 与 Oracle DB 进行并发任务。
这是演员的工作示例:
def marketPlaceDataRefresh[T](targetArea:String, customerId:String, wave:String) =
clientPool.withClient(targetArea.toUpperCase) {
implicit session =>
sql"""BEGIN MARKETPLACE_PKG.INIT_DATA_REFRESH($customerId,$wave,$wave,$wave); COMMIT; END;""".as[Int].firstOption
}
每次当 AKKA 演员调用 def marketPlaceDataRefresh 时,隐式会话打开和关闭。
我只知道并发和 Slick 的基础知识。
如何创建单个会话并使其对所有并发任务保持打开状态?
【问题讨论】:
-
我没有这个问题的答案,只是一个考虑,我认为你不应该这样做,会话被打开,使用然后返回到数据库会话池,这是一个快速和安全机制,如果你在演员中打开了一个会话并且可能没有使用会发生什么?或者如果演员崩溃并且会话没有正确关闭,甚至更糟?
标签: oracle scala session akka slick