gpt4 book ai didi

一旦数据库被退回, hibernate 就不会重新连接

转载 作者:行者123 更新时间:2023-12-03 08:19:04 24 4
gpt4 key购买 nike

我发现在我们退回(停止并启动)我们的数据库(postgresql 8.3)之后,我们使用 hibernate(3.2.6)的应用程序无法重新获取连接,而是收到带有消息“broken pipe”的 SocketException .

我相信我们已配置为使用内置连接池。

如何在不重新启动应用程序的情况下重新启动数据库后使 hibernate 重新获取连接?

页。

最佳答案

您需要的是连接池提供的称为连接测试的功能——连接池应该运行一个快速查询来验证它即将分发的连接是否过时。不幸的是DriverManagerConnectionProvider , Hibernate 的默认连接池类,不支持此功能。 Hibernate团队strongly discourages在生产代码中使用此连接池。

Hibernate's own connection pooling algorithm is, however, quite rudimentary. It is intended to help you get started and is not intended for use in a production system, or even for performance testing. You should use a third party pool for best performance and stability.



我的建议是您切换到其他一些连接池实现。如果您切换到 C3P0(随 Hibernate 一起提供),则可以按照说明配置连接测试 here .如果您使用 Apache DBCP,它可以让您按照说明设置验证查询 here .

关于一旦数据库被退回, hibernate 就不会重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5242305/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com