gpt4 book ai didi

mysql - BoneCP 连接超时

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:13 24 4
gpt4 key购买 nike

我正在将 Hibernate 4 与 BoneCP 集成,并想了解这些属性的含义:

<property name="idleConnectionTestPeriod">30</property>
<property name="idleMaxAge">240</property>
<property name="connectionTestStatement">select 1 from db.table limit 1</property>

我的应用程序需要保持与 mysqldb 24x7 的持续连接

这是否意味着每 30 分钟就会执行一次测试语句?并且该连接将在 240 分钟后失效?我如何使我的连接永久,因为偶尔我会得到这种配置

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.

最佳答案

正如 BoneCP 的作者所写 here ,有两种方法可以管理连接状态——您使用的方式和设置 maxConnectionAgeInSeconds 的方式。

重要提示 - 不要忘记 MySQL 配置,例如 wait_timeout。它以秒为单位给出,并且必须大于 maxConnectionAgeInSeconds。您可以在 MySQL 目录中的 my.ini 文件中更改此参数。

比如我现在的配置:
wait_timeout=3600(MySQL参数);
maxConnectionAgeInSeconds=3000(BoneCP参数)

此外,我将 interactive_timeout 变量设置为与 wait_timeout 相同。我不确定它是否有意义,但我看到 MySQL 在某处需要 min(interactive_timeout,wait_timeout)。实际上,interactive_timeout 是交互式客户端的超时 - 当您使用 MySQL 命令行时,您就是交互式客户端。不管怎样,最好让它们相等——即使这个参数也没有意义,它有点像保险。

附言不要忘记在设置变量之前关闭 mysql (cmd->net stop mysql)。设置新值后,使用 show variables like '%timeout%';

在命令行中检查它们

关于mysql - BoneCP 连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014517/

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