为了账号安全,请及时绑定邮箱和手机立即绑定

如何处理:SQL错误:0、SQLState:08006和08003?

如何处理:SQL错误:0、SQLState:08006和08003?

LEATH 2023-12-21 10:46:37
我在 heroku 上有 PostgreSQL 数据库的应用程序。解析器运行在我的 PC 上,它每 10 分钟从 Heroku 的数据库保存和读取数据,并使用 Hibernate 进行交互。这是配置:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>        <property name="hibernate.connection.url">jdbc:postgresql:url</property>        <property name="hibernate.connection.username">user</property>        <property name="hibernate.connection.password">pass</property>        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQL94Dialect</property>        <property name="show_sql">true</property>        <property name="hibernate.c3p0.idle_test_period">14400</property><property name="hibernate.c3p0.timeout">25200</property>        <property name="hibernate.c3p0.max_size">15</property>        <property name="hibernate.c3p0.min_size">3</property>        <property name="hibernate.c3p0.max_statements">0</property>        <property name="hibernate.c3p0.preferredTestQuery">select 1;</property>    </session-factory></hibernate-configuration>但过了一段时间后,我的解析器停止了,我得到了这个:окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsWARN: SQL Error: 0, SQLState: 08006окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsERROR: Ошибка ввода/ввывода при отправке бэкендуокт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsWARN: SQL Error: 0, SQLState: 08003окт 25, 2019 12:44:59 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsERROR: Соединение уже было закрыто有哪些方法可以解决这个问题呢?
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

您的数据库连接正在关闭,并且您仅每 3 小时测试一次它们的有效性。无论如何,空闲测试显然不是一个好主意。

除非您在旧环境中工作,否则您应该设置hibernate.c3p0.testconnectiononcheckout=true,这样您将始终获得有效的连接。

preferredTestQuery如果您正在使用 JDBC4 驱动程序(希望您是这样),那么这也是不必要的。


查看完整回答
反对 回复 2023-12-21
  • 1 回答
  • 0 关注
  • 417 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信