我经历了很多解决方案,但问题得到了解决,但一段时间后连接超时或断开连接.2 3天后,我得到了解决我的问题的解决方案。
许多解决方案建议使用autoReconnect = true,但是当我浏览文档时。 我在源代码中看到以下文本描述了autoReconnect参数:
不建议使用此功能,因为它具有与会话状态和数据一致性相关的副作用
当我查看Hibernate代码时。 Hibernate的基本连接机制不支持重新连接,必须使用H3C0连接池(它本身并不总是支持重新连接)。
但是一旦使用过H3C0,默认行为似乎是处理请求,如果连接中断,则用户会看到并出错-但至少会为下一个请求重新连接。 我想一个错误比无限错误要好,但仍然不如零错误。 事实证明,不需要选项testConnectionOnCheckout-该文档不建议这样做,因为在请求之前测试连接可能会导致性能降低。 当然,软件首先必须正常运行,其次它必须快速运行。
因此,总而言之,要获得与“工作”的连接(我定义为通过无错误地重新连接来处理已删除的连接):在“ hibernate.cfg.xml”中:
5
20
1800
50
然后创建一个文件“ c3p0.properties”,该文件必须位于类路径的根目录中(即无法对应用程序的特定部分覆盖它):
c3p0.properties
c3p0.testConnectionOnCheckout = true
如果此解决方案不起作用,那么还有更多可能的解决方案:-
1. Add
org.hibernate.connection.C3P0ConnectionProvider
Also dont forget to place the c3p0-0.9.1.jar in the classpath.
2. Instead of using that c3p0.properties file, couldn't you just use this property in your hibernate.cfg.xml:
true
Also checkout the last post on this page:
https://forum.hibernate.org/viewtopic.php?p=2399313
If all these not work than go [more][1] and read in detail
[1]: http://hibernatedb.blogspot.in/2009/05/automatic-reconnect-from-hibernate-to.html