【发布时间】:2011-05-29 11:49:59
【问题描述】:
我目前有一个长时间运行的线程,它使用休眠会话来执行许多更新。我们目前将 c3p0 连接超时设置为 20 分钟,有时会因为我们正在执行的更新次数而超时。
我的解决方案是通过关闭会话定期返回到池的连接(我们已经以这种方式配置了休眠)并获得一个新的。增加超时是不可取的,因为整个应用程序都使用同一个池。
问题是我不知道何时将连接返回到池中,因为我不知道连接的超时时间是多少。我知道我们的属性文件中的当前设置是什么,但是可以在我不知情的情况下随时更改它,因此它很脆弱。拥有一个计数器并根据我执行的更新次数返回连接并不理想,但可能是我最后的选择。
我有一个休眠会话,如何检索支持该会话的 jdbc 连接的连接超时?使用 SessionFactory 和 SessionFactoryImpl 类是完全可以接受的。
【问题讨论】:
-
现在我将采用所描述的计数器方法。我暂时保留这个问题,如果有一段时间,我会自己回答。
-
所以你想在不读取属性文件的情况下获得c3p0连接超时,如果我错了请指出
-
没错,但如果我能提供帮助的话,我真的不想将自己束缚在特定的连接池实现中。