我有一个应用程序,它使用mysql保存到一个表中(这个表有2个json字段,其中一个可以接收大量输入)。在生产过程中,我时不时会遇到以下错误:
sqlexceptionhelper-从服务器成功接收的最后一个数据包是71290382毫秒前。
最后一个成功发送到服务器的数据包是71290384毫秒前。长于服务器配置的值“wait\u timeout”。您应该考虑在应用程序中使用之前终止和/或测试连接有效性,增加服务器为客户端超时配置的值,或者使用连接器/j连接属性“autoreconnect=true”来避免此问题。
我不明白为什么会这样,因为在当地我从来没有面对过这个问题。这是我目前的配置:
cfg.setProperty("hibernate.c3p0.min_size", "5")
.setProperty("hibernate.c3p0.max_size", "20")
.setProperty("hibernate.c3p0.timeout", "30000")
.setProperty("hibernate.c3p0.max_statements", "50")
.setProperty("hibernate.c3p0.idle_test_period", "3000")
.setProperty("hibernate.connection.autoReconnect", "true")
.setProperty("hibernate.connection.autoReconnectForPools", "true");
我错过什么了吗?。
1条答案
按热度按时间drkbr07n1#
不久前我们也有同样的问题。我在历史记录中搜索,虽然可以保留现有的值,但需要添加以下值:
<property name="connection.is-connection-validation-required">true</property>
. 这对我们的工件起到了作用,但是您需要检查您的案例,因为您可能有一些其他设置。作为旁注,我认为应该是:
我们也有一个
c3p0.properties
文件:特别注意测试连接检查。